I'm working with stm32f4 discovery board.I can make spi dma communication with a slave device in while(1) loop without any problem.
But I have problem to make spi communication with slave device in external interrupt service routine (I want to read data from slave device whenever a pin is set by slave and I detect this using external interrupt). The code is executed until it reaches this while loop:
while (HAL_SPI_GetState(&hspi2) == HAL_SPI_STATE_BUSY_TX);
at this moment it stops and hangs. If I set a flag in ISR and read via SPI in while(1) loop when that flag is set by ISR, every thing is OK.
But how can I transfer data via spi in external ISR without mentioned problem?