stm32: spi: Standard mode selection
Allow setting cpol/cpha via standard mode numbers, instead of separate calls for each bit.
This commit is contained in:
parent
fb1a365423
commit
c28d7bc187
@ -391,6 +391,7 @@ void spi_enable_tx_dma(uint32_t spi);
|
|||||||
void spi_disable_tx_dma(uint32_t spi);
|
void spi_disable_tx_dma(uint32_t spi);
|
||||||
void spi_enable_rx_dma(uint32_t spi);
|
void spi_enable_rx_dma(uint32_t spi);
|
||||||
void spi_disable_rx_dma(uint32_t spi);
|
void spi_disable_rx_dma(uint32_t spi);
|
||||||
|
void spi_set_standard_mode(uint32_t spi, uint8_t mode);
|
||||||
|
|
||||||
END_DECLS
|
END_DECLS
|
||||||
|
|
||||||
|
@ -709,4 +709,29 @@ void spi_disable_rx_dma(uint32_t spi)
|
|||||||
SPI_CR2(spi) &= ~SPI_CR2_RXDMAEN;
|
SPI_CR2(spi) &= ~SPI_CR2_RXDMAEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
/** @brief SPI Standard Mode selection
|
||||||
|
@details Set SPI standard Modes
|
||||||
|
Mode | CPOL | CPHA
|
||||||
|
---- | ---- | ----
|
||||||
|
0 | 0 | 0
|
||||||
|
1 | 0 | 1
|
||||||
|
2 | 1 | 0
|
||||||
|
3 | 1 | 1
|
||||||
|
@param[in] spi Unsigned int32. SPI peripheral identifier @ref spi_reg_base.
|
||||||
|
@param[in] mode Unsigned int8. Standard SPI mode (0, 1, 2, 3)
|
||||||
|
@sa spi_set_clock_phase_0 spi_set_clock_phase_1
|
||||||
|
@sa spi_set_clock_polarity_0 spi_set_clock_polarity_1
|
||||||
|
*/
|
||||||
|
|
||||||
|
void spi_set_standard_mode(uint32_t spi, uint8_t mode)
|
||||||
|
{
|
||||||
|
if(mode > 3) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t reg32 = SPI_CR1(spi) & ~(SPI_CR1_CPOL | SPI_CR1_CPHA);
|
||||||
|
SPI_CR1(spi) = reg32 | mode;
|
||||||
|
}
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user