STM32H743移植Finsh组件的相关问题

发布于 2020-08-21 00:23:01

最近开始研究RTT Nano,在移植Finsh组件中遇到了一点问题,打开了rtconfig.h中的RT_USING_FINSH 宏,目前程序写入后,串口能够打印出RTT的标志性的版本号等信息,同时也出现了msh>标志,但是按Tab等Finsh相关命令时,没有反应不知如何解决。
image.png
(串口软件有点小乱码,在野火的串口助手没有问题,对这个软件研究不是很深,暂时没找到解决办法)
我手头的板子是野火的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;

}
`
同时,由于野火官方的库文件使用的是中断接收,我也将中断函数进行了注释,通过轮循的方法进行接收image.png
当前卡在这边一直没有找的解决的办法,如果有朋友知道如何解决麻烦赐教,感谢。

查看更多

关注者
0
被浏览
297
3 个回答
lizhen9880
lizhen9880 认证专家 2020-08-21
  • 中断中接收并写入buffer,释放信号量
  • rt_hw_console_getchar中读取buffer中一个字符,如果未读取到,则等待获取信号量可参见此处

此处所指buffer应为fifo,buffer大小根据实际业务自定。

Fay
Fay 2020-08-21

我的是只有单个输入字符才能用,不知什么原因。微信图片_20200821085618.jpg

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览