Arduino控制Nextion屏幕无响应问题求助
Arduino与Nextion通信无响应问题修复
核心问题分析
你的代码缺少Nextion与Arduino的串口通信初始化步骤,Nextion依赖串口完成指令传输,未初始化的情况下,Arduino无法向屏幕发送任何有效指令。
分步修复方案
添加通信初始化代码
在setup()函数最开头添加串口初始化与Nextion库初始化,波特率必须与Nextion编辑器中设置的一致(默认9600):Serial.begin(9600); NexInit();确认硬件连接正确性
- Arduino TX → Nextion RX
- Arduino RX → Nextion TX
- 两者必须共地(GND相连)
- Nextion电源需匹配(通常为5V,避免电压不足)
- 若使用Arduino Uno的硬件串口(D0/D1),上传代码前需断开Nextion的RX线,防止串口被占用导致上传失败
验证组件参数匹配
确保Nextion编辑器中:- 文本组件
tb的页面ID为0、组件ID为4、名称为tb - 图片组件
eye的页面ID为0、组件ID为3、名称为eye
所有参数需与代码中NexText(0,4,"tb")、NexPicture(0,3,"eye")完全一致(名称大小写敏感)
- 文本组件
修改后的完整代码
#include <Nextion.h> NexText tb = NexText(0,4,"tb"); NexPicture eye = NexPicture(0,3,"eye"); void setup() { // 初始化串口与Nextion通信 Serial.begin(9600); NexInit(); eye.setPic (6); tb.setText ("loading"); delay(1000); eye.setPic (1); tb.setText ("loaded"); delay(500); tb.setText ("HelloWorld"); } void loop() { // 保持Nextion库的事件处理(即使仅发送指令,也建议保留) NexLoop(); eye.setPic (1); delay(1000); eye.setPic (6); delay(500); }
额外排查建议
- 打开Arduino串口监视器,设置相同波特率,查看是否有指令输出
- 使用Nextion编辑器的「调试」功能,确认屏幕是否接收到Arduino发送的指令
内容的提问来源于stack exchange,提问作者Evan Mathew
相关产品推荐
相关产品推荐

