Arduino添加Serial.println后无法闪烁且无串口输出问题求助
解决Arduino添加Serial代码后无法闪烁及串口无输出问题
我之前也碰到过类似的情况——原本正常跑的闪烁程序,加了串口初始化代码后直接“罢工”,既不闪灯也没串口输出。结合你的描述,大概率是这几个常见问题,你可以逐一排查:
1. 串口初始化缺少握手延时
很多Arduino板(比如Uno、Nano)的USB转串口芯片需要一点时间完成和电脑的握手,如果你在Serial.begin()后立刻进入loop执行操作,很可能因为串口还没准备好导致程序阻塞。
解决办法:在Serial.begin()后加一段短延时,给串口留出初始化时间:
void setup() { pinMode(13, OUTPUT); Serial.begin(115200); delay(1000); // 给串口1秒初始化缓冲时间 }
2. 串口波特率不匹配
这是最容易忽略的细节:你的代码里用了Serial.begin(115200),但如果Serial Monitor的波特率设置成了其他值(比如默认的9600),不仅看不到输出,还可能干扰程序正常运行。
检查步骤:打开Serial Monitor后,确认右下角的波特率选择框设置为115200,和代码里的参数完全一致。
3. 代码存在语法错误
你贴的修改后代码里,loop函数的开头写成了voi...,明显是拼写错误(应该是void loop())。语法错误会导致代码上传失败,或者上传后程序无法正常执行。
先把代码补全修正,确保函数定义、括号都正确闭合,比如完整的修正代码:
void setup() { pinMode(13, OUTPUT); Serial.begin(115200); delay(1000); } void loop() { digitalWrite(13, HIGH); Serial.println("LED已点亮"); delay(1000); digitalWrite(13, LOW); Serial.println("LED已熄灭"); delay(1000); }
4. 串口阻塞问题(仅调试场景适用)
有些Arduino板在未连接串口时,执行Serial.println()这类操作会阻塞程序。如果你希望程序只在串口连接后才正常运行,可以在setup里添加等待逻辑:
void setup() { pinMode(13, OUTPUT); Serial.begin(115200); // 等待串口连接,仅适合调试阶段 while (!Serial) { ; // 空循环等待 } }
⚠️ 注意:这个逻辑会导致未打开Serial Monitor时,程序一直卡住不执行闪烁,调试完成后建议去掉。
5. 硬件/驱动问题
如果以上都没问题,可能是USB驱动或硬件的问题:
- 如果你用的是CH340芯片的Arduino(比如便宜的Nano),检查电脑上是否安装了正确的CH340驱动;
- 尝试更换USB线,有些劣质线只能充电不能传输数据;
- 上传代码后,点击Arduino板上的重置按钮,再打开Serial Monitor。
内容的提问来源于stack exchange,提问作者Alfred Balle
相关产品推荐
相关产品推荐

