73 if(instance ==
SPI1) {
76 else if(instance ==
SPI2) {
79 else if(instance ==
SPI3) {
82 else if(instance ==
SPI4) {
95 instance->
SPI_DR = *tx_buffer;
102 instance->
SPI_DR = *((uint16_t*)tx_buffer);
109 uint16_t dummy_rx = instance->
SPI_DR;
116 uint16_t dummy_tx = 0xFFFF;
121 instance->
SPI_DR = (uint8_t)dummy_tx;
125 *rx_buffer = instance->
SPI_DR;
131 instance->
SPI_DR = dummy_tx;
135 *((uint16_t*)rx_buffer) = instance->
SPI_DR;
154 else if(en_status ==
DISABLE) {
182 if(instance ==
SPI1) {
185 else if(instance ==
SPI2) {
188 else if(instance ==
SPI3) {
191 else if(instance ==
SPI4) {
EN_STATUS_te
Represents an enabled or disabled state.
void rcc_set_pclk_apb2(RCC_APB2ENR_te periph_position, EN_STATUS_te en_status)
Enables or disables the peripheral clock for an APB2 peripheral.
void rcc_reset_periph_apb2(RCC_APB2RSTR_te periph_position)
Resets an APB2 peripheral via RCC_APB2RSTR.
void rcc_set_pclk_apb1(RCC_APB1ENR_te periph_position, EN_STATUS_te en_status)
Enables or disables the peripheral clock for an APB1 peripheral.
void rcc_reset_periph_apb1(RCC_APB1RSTR_te periph_position)
Resets an APB1 peripheral via RCC_APB1RSTR.
static void spi_set_pclk(SPI_REGDEF_ts const *instance, EN_STATUS_te en_status)
Enables or disables the peripheral clock for an SPI instance.
void spi_set_comm(SPI_REGDEF_ts *instance, EN_STATUS_te en_status)
Enables or disables the SPI peripheral.
void spi_send(SPI_REGDEF_ts *instance, uint8_t *tx_buffer, uint32_t len)
Blocking SPI transmit.
void spi_deinit(SPI_REGDEF_ts const *instance)
Deinitializes the SPI peripheral and disables its clock.
void spi_init(SPI_CFG_ts *spi_cfg)
Initializes the SPI peripheral with the given configuration.
void spi_receive(SPI_REGDEF_ts *instance, uint8_t *rx_buffer, uint32_t len)
Blocking SPI receive.
void spi_set_pclk_div(SPI_REGDEF_ts *spi_instance, SPI_MASTER_SCLK_SPEED_te pclk_div)
Changes the SPI master clock speed divisor at runtime.
SPI_MASTER_SCLK_SPEED_te
SPI master clock speed as a division of the peripheral clock (PCLK).
@ SPI_SLAVE_SELECT_MODE_HW
STM32F401RE MCU-specific peripheral register definitions and bit position enumerations.
STM32F401RE RCC driver public API.
STM32F401RE SPI driver public API.
Configuration structure for initializing an SPI peripheral.
SPI_CLOCK_POLARITY_te clock_polarity
SPI_SLAVE_SELECT_MODE_te slave_select_mode
SPI_MASTER_SCLK_SPEED_te master_sclk_speed
SPI_DATA_FRAME_FORMAT_te data_frame_format
SPI_CLOCK_PHASE_te clock_phase
SPI_BIT_FIRST_te bit_first
SPI peripheral register map.
uint32_t volatile SPI_CR2
uint32_t volatile SPI_CR1