cancel
Showing results for 
Search instead for 
Did you mean: 

SPI Transmit and Receive in STM32F207ZGT6

vbk22398
Senior

int main(void)

{

HAL_Init();

 

SystemClock_Config();

 

MX_GPIO_Init();

MX_SPI1_Init();

MX_USART3_UART_Init();

/* USER CODE BEGIN 2 */

----> HAL_SPI_Receive_IT(&hspi1, (uint8_t*) &rx_data, sizeof(rx_data));

/* USER CODE END 2 */

while (1)

{

HAL_SPI_Transmit(&hspi1, (uint8_t*) &test,sizeof(test), HAL_MAX_DELAY);

delay(10000);

}

}

I use SPI1 module in FullDuplexMaster Mode.
I use interrupt to receive data from the SPI Slave.
The Thing is that if I add the Line which is arrowed--->HAL_SPI_Receive_IT(), the sending is not happening.
I want to know why this is happening. help me why?

Thank You

3 REPLIES 3
STTwo-32
ST Employee

Helll @vbk22398 

I suggest you to take a look at this example to understand how it works.It should be helpful on your case.

Best Regards.

STTwo-32 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

AScha.3
Chief III

Try with (only using) : 

HAL_SPI_TransmitReceive(..);

on full duplex spi, always both happen together, transmit and receive, see rm :

 

AScha3_0-1710677165844.png

 

If you feel a post has answered your question, please click "Accept as Solution".
gbm
Lead III

Use HAL_SPI_TransmitReceive().

My STM32 stuff on github - compact USB device stack and more: https://github.com/gbm-ii/gbmUSBdevice