FreeRTOS--在任务中调用vTaskDelay()导致程序卡死
vTaskDelay()会获取systick中的系统节拍数来判断阻塞是否完成,但是查看stm32f1x_it.c 文件中的SysTick_Handler中断实现没有对系统节拍进行计数,就是空函数,因此不会超时退出,导致程序卡死。可直接在FreeRTOSConfig.h中添加宏定义,重新定义SysTick_Handler为xPortSysTickHandler即可。创建了两个任务Led1Task 和Led2Task ,并启动调度器后,发现程序卡死在Led1Task中的vTaskDelay()中。
原创
2023-10-24 22:33:31 ·
3265 阅读 ·
1 评论