基于RTT nano移植FinSH时串口只能回显一个字符,请问有什么解决方法吗?

发布于 2020-11-30 22:27:49

我最近刚刚开始入门RTT,今天在基于RTT nano移植FinSH时遇到了问题,具体如下:
使用的硬件是STM32F103C8T6,RTT nano的移植是用cubeMX生成的初始化代码,使用的串口是串口1,驱动由cubeMX生成,FinSH组件中的void rt_hw_console_output(const char *str); char rt_hw_console_getchar(void);两个函数是RTT文档中心提供的代码,未经修改。
串口调试助手截图如下
rtt.jpg

如图中显示,当在串口中输入指令的时候,只会回显一个字符,并且指令也不会执行,我实在是找不到问题在哪,已经在这个问题上卡了一整天了,哪位大佬帮我指点一下,拜谢!

查看更多

关注者
0
被浏览
160
3 个回答
HappyTime
HappyTime 2020-12-01

加fifo试试

CVSM_9600
CVSM_9600 2020-12-21

串口接收中断里面刚接收到数据就释放了信号量,shell接收信号量后处理分析不是内部指令。可以把释放信号量推迟,等待指令接收结束后再释放信号量就正常了。

coderdd
coderdd 2020-12-22

三种解决办法
1.别用串口助手,用secureCRT
2.你看的源码里面加了一个大延时,所以导致这样,延时改小。
3.用ringbuffer实现,源码同样给出。

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览