是因为你手动打上去之后按了一下回车吧,但是你在字符串输入框中发送却没有发送回车或换行符 r 或 n,你在字符串输入框中,勾选上 “发送新行”,如下蓝色圈选位置,这样发送试一下。
分析控制台线程的源码也可以看到,解析的时候是根据收到 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,上传一个免安装的版本。
是因为你手动打上去之后按了一下回车吧,但是你在字符串输入框中发送却没有发送回车或换行符 r 或 n,你在字符串输入框中,勾选上 “发送新行”,如下蓝色圈选位置,这样发送试一下。
分析控制台线程的源码也可以看到,解析的时候是根据收到 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,上传一个免安装的版本。
举报