VS Code内置串口监视器无输出,但其他串口监视器正常如何解决?
Raspberry Pi Pico串口输出在VS Code监视器无显示的解决方法
问题情况
我用Raspberry Pi Pico运行以下Hello World程序,Arduino IDE和PuTTY的串口监视器能正常每秒收到Hello, world!,但VS Code内置串口监视器完全没输出。已经确认COM端口正确(关闭Pico电源时VS Code串口终端会关闭),调整波特率也没用。
运行的代码
#include <stdio.h> #include "pico/stdlib.h" int main() { stdio_init_all(); while (true) { printf("Hello, world!\n"); sleep_ms(1000); } return 0; }
可行的解决步骤
检查换行符匹配
Pico代码里用的是\n(LF换行),VS Code串口监视器默认可能设置为CRLF或者其他格式。点击VS Code串口监视器右上角的设置图标,把换行符选项改成LF,再重新打开监视器试试。再次确认波特率
Pico的stdio_init_all()默认波特率是115200,即使你调整过,再仔细核对VS Code串口监视器的波特率是否设为115200,有时候可能不小心选了其他值。关闭VS Code串口监视器的额外功能
有些串口扩展的自动换行、输出过滤等功能可能干扰显示。尝试关闭这些附加设置,只保留基础的串口接收功能。更换VS Code串口扩展
如果用的是微软默认的Serial Monitor,可以换成第三方扩展,比如PlatformIO自带的串口监视器,或者Serial Port Monitor这类工具,不同扩展的串口处理逻辑可能不一样。给串口初始化加延迟
Pico的串口初始化可能需要一点时间,VS Code可能在串口就绪前就打开了监视器。在代码里stdio_init_all()之后加一段延迟再开始输出:stdio_init_all(); sleep_ms(1000); // 增加1秒延迟,等待串口完全初始化 while (true) { printf("Hello, world!\n"); sleep_ms(1000); }重新烧录程序后再测试VS Code监视器。
内容的提问来源于stack exchange,提问作者Alix
相关产品推荐
相关产品推荐

