首先确认FreeRTOS工程在STM32上是否能跑起来,不会出现硬件错误。
在main.c中添加以下代码(无子优先级,对于RTOS更好):
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);在FreeRTOSConfig.h进行如下配置:
/*中断优先级配置*/
#ifdef __NVIC_PRIO_BITS
#define configPRIO_BITS __NVIC_PRIO_BITS
#else
#define configPRIO_BITS 4
#endif
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))
#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY<<(8-configPRIO_BITS))
并且将启动文件从可编辑的替换成只读的启动文件


这样在串口中断服务程序中就能打断点了(一定要确保FreeRTOS配置正确,且能正常使用)。


文章介绍了如何在STM32微控制器上正确配置FreeRTOS的中断优先级,包括在main.c中设置NVIC_PriorityGroupConfig,调整FreeRTOSConfig.h中的中断优先级定义,以及确保启动文件的正确性,以便在串口中断服务程序中使用打断点进行调试。内容强调了FreeRTOS配置的正确性和重要性。
3331

被折叠的 条评论
为什么被折叠?



