MDK 在 RT-Thread Nano 上添加控制台与 FinSH 问题总结
近日学习RT-Thread,发现在添加控制台与FinSH时遇到了问题,并没有像示例教程那样打印出信息,通过keil的simulation发现一直死在串口HAL驱动中的。
为什么会出现该现象呢?我经过仔细排查,后发现并解决了该问题。首先,将该问题复现如下:
1.准备一个MDK可以正常运行的LED程序。可以自己用keil搭建,也可以用cubeMx生成。为了快速生成工程,我采用cubeMx生成的。
2.将生成的LED工程用keil打开,然后按照 《基于 Keil MDK 移植 RT-Thread Nano》
添加RT-Thread OS
增加相关代码后,LED闪烁。
我的主函数代码为:
while (1)
{
/* USER CODE END WHILE */
Mytime++;
if(Mytime==20)
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
else if(Mytime==40)
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED2_Pin);
else if(Mytime==60)
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED3_Pin);
else if(Mytime==80)
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED4_Pin);
if(Mytime>90)
{
Mytime=0;
rt_kprintf("RT_VERSION\n");
}
rt_thread_mdelay(