嵌入式技术william hill官网
直播中

安德森大

9年用户 1311经验值
擅长:接口/总线/驱动
私信 关注
[问答]

基于RTT nano移植FinSH失败的问题该怎样去解决呢

我最近刚刚开始入门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文档中心提供的代码,未经修改。

串口调试助手截图如下

1.jpg

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

回帖(5)

李红

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

张华

2022-9-22 10:19:59
加fifo试试
举报

张华

2022-9-22 10:20:15
没有执行肯定是getchar的问题, 连接已失效, 更新一下连接, 里面有ringbuffer实现getchar,
举报

李丹

2022-9-22 10:20:23
利用中断缓存数组实现,官网有给出源码ringbuffer实现
举报

李丹

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

更多回帖

发帖
×
20
完善资料,
赚取积分