STM32F7 SPI中断停止与FreeRTOS一起工作

STM32F7 SPI中断停止与FreeRTOS一起工作,stm32,interrupt,spi,freertos,stm32cubemx,Stm32,Interrupt,Spi,Freertos,Stm32cubemx,我使用stm33F7通过SPI通信读取传感器,它在仅从机接收模式下工作,我可以在中断模式下完全读取数据,无需操作系统,但由于我在随机时间中断停止触发后启用FreeRTOS(使用STM32CUBE)。我还通过UART通信从另一个传感器读取数据,无论是否使用操作系统,在这两种模式下都可以正常工作,使用SPI中断和FreeRTOS是否有任何问题?中断处理程序是否使用FreeRTOS API调用?如果是这样,您需要确保正确设置优先级,并且STM32的所有优先级位都设置为抢占优先级。此外,请熟悉。我通过将

我使用stm33F7通过SPI通信读取传感器,它在仅从机接收模式下工作,我可以在中断模式下完全读取数据,无需操作系统,但由于我在随机时间中断停止触发后启用FreeRTOS(使用STM32CUBE)。我还通过UART通信从另一个传感器读取数据,无论是否使用操作系统,在这两种模式下都可以正常工作,使用SPI中断和FreeRTOS是否有任何问题?

中断处理程序是否使用FreeRTOS API调用?如果是这样,您需要确保正确设置优先级,并且STM32的所有优先级位都设置为抢占优先级。此外,请熟悉。

我通过将SPI中断优先级更改为0解决了问题。它现在工作得很好。

即使SPI中断停止触发,任务仍会继续运行,我还尝试了一种情况,即程序中没有任务运行,只在中断例程中切换led,并且led在随机时间后仍会停止切换。此外,我还尝试更改HAL_NVIC_SetPriority(SPI4_IRQn,5,0)中的SPI中断优先级我的中断处理程序不使用任何FreeRTOSAPI调用,STM32CUBE设置所有优先级位。