最近开始研究RTT Nano,在移植Finsh组件中遇到了一点问题,打开了rtconfig.h中的RT_USING_FINSH 宏,目前程序写入后,串口能够打印出RTT的标志性的版本号等信息,同时也出现了msh>标志,但是按Tab等Finsh相关命令时,没有反应不知如何解决。
(串口软件有点小乱码,在野火的串口助手没有问题,对这个软件研究不是很深,暂时没找到解决办法)
我手头的板子是野火的H743开发板。程序也是基于野火的串口例程进行移植的。在重定义char rt_hw_console_getchar(void)函数时,由于H7的HAL库和F1的有些不同,RTT官方例程中的串口接受函数无法使用,所以我调用了HAL库中的HAL_UART_Receive()函数接收。这一段代码如下:
`
char rt_hw_console_getchar(void)
{
int ch = -1;
if (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) != RESET)
{
HAL_UART_Receive(&UartHandle,(uint8_t *)(ch) ,1,1000);
}
else
{
if(__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ORE) != RESET)
{
__HAL_UART_CLEAR_OREFLAG(&UartHandle);
}
rt_thread_mdelay(10);
}
return ch;
}
`
同时,由于野火官方的库文件使用的是中断接收,我也将中断函数进行了注释,通过轮循的方法进行接收
当前卡在这边一直没有找的解决的办法,如果有朋友知道如何解决麻烦赐教,感谢。
你用串口助手不行,要用超级终端, 下载一个 putty终端, 选择serial模式,设置波特率和COM口,就可以输入命令了.
https://the.earth.li/~sgtatham/putty/0.74/w64/putty.exe
谢谢,用putty终端就可以了