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

建立建利12

8年用户 1371经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

串口调试助手字符串输入框在msh为什么无法发送字符串

msh上无法粘贴字符串和串口调试助手的字符串输入框中也只能发送首位字符,但是直接在msh命令手打就可以

回帖(6)

夏日余晖

2022-8-5 10:44:29
接收方太慢,丢了。
举报

建立建利12

2022-8-5 10:44:46
这个都没有发出去啊,只是在msh上显示首字母
举报

刘强

2022-8-5 10:44:54
有可能是因为没发换行符。
举报

刘桂英

2022-8-5 10:45:01
降低波特率,换 9600 试试
finsh 不需要整那么高的波特率
举报

李俊

2022-8-5 10:45:09
 是因为你手动打上去之后按了一下回车吧,但是你在字符串输入框中发送却没有发送回车或换行符 r 或 n,你在字符串输入框中,勾选上 “发送新行”,如下蓝色圈选位置,这样发送试一下。
1.jpg
 分析控制台线程的源码也可以看到,解析的时候是根据收到 r 或 n 才开始解析的,如下所示。
  • // 文件 rt-thread/components/finsh/shell.c 中函数 finsh_thread_entry()
  • /* handle end of line, break */
  • if (ch == 'r' || ch == 'n')
  • {
  • #ifdef FINSH_USING_HISTORY
  •     shell_push_history(shell);
  • #endif
  •     if (shell->echo_mode)
  •         rt_kprintf("n");
  •     msh_exec(shell->line, shell->line_position);
  •     rt_kprintf(FINSH_PROMPT);
  •     memset(shell->line, 0, sizeof(shell->line));
  •     shell->line_curpos = shell->line_position = 0;
  •     continue;
  • }

另外,在使用终端调试的时候建议不使用 SSCOM 串口调试助手,它不能显示不同 log 的颜色,存储调试日志也不方便,推荐使用 MobaXterm,上传一个免安装的版本。

举报

夏日余晖

2022-8-5 10:46:25
如果你的串口中断无法在一个字符的时间内处理完就会开始丢失字节。
“ATcmd AT”一共8个字符,连续发送需要694us,只显示一个字母A说明你的串口中断处理一个字符超过了694us
举报

更多回帖

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