You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:01:12