1、程序功能:在STM32F103VE开发板上使用FreeRTOS系统实现LED闪烁加上串口1日志输出。1、不使用FreeRTOS时,串口1能够正常工作;LED能够闪烁;2、使用FreeRTOS时,串口1不能正常工作,LED常亮,不能闪烁;如图所示:
2、我将延时函数改为自己编写的延时函数,不使用FreeRTOS自带的延时函数,经测试串口1正常工作、LED正常工作,代码如图所示:
3、那么是否串口初始化函数与FreeRTOS的延时函数vTaskDelay存在冲突呢?我参考了一下官方的串口初始化例程,发现没有问题。代码如图所示:
4、尝试将串口初始化函数放到main主函数中,发现串口和LED都工作正常,延时函数vTaskDelay工作正常。代码如图所示:
5、FreeRTOS的延时函数在很多时候都需要使用,最终将串口放到了main主函数中。不知道这个算不算FreeRTOS的BUG,串口初始化过程和延时函数vTaskDelay存在冲突!