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_enable_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
|
||||
|
||||
|
|
|
@ -709,4 +709,29 @@ void spi_disable_rx_dma(uint32_t spi)
|
|||
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…
Reference in New Issue