【发布时间】:2018-07-01 07:45:49
【问题描述】:
我遇到了 Nextion NX4024T032_011 的问题。 我可以从 Arduino Uno 或 Leonardo 向它发送数据,但是当我按下按钮时 Nextion 似乎没有向 Arduino 发送数据(Arduino 板上的 Rx 二极管没有闪烁)。 在串行端口上,我只能在打开串行监视器后看到“recvRetCommandFinished err”: recvRetCommandFinished err
据我说,Nextion 按钮设置正确。 Nextion button
我正在使用这个库: https://github.com/itead/ITEADLIB_Arduino_Nextion 但我对其进行了一些修改。 我在 NexConfig.h 中更改了这一行:
#define nexSerial Serial2
到:
#include <SoftwareSerial.h>
extern SoftwareSerial HMISerial;
#define nexSerial HMISerial
Arduino 代码:
/*
How to use Nextion library:
https://create.arduino.cc/projecthub/tsavascii/nextion-lcd-communicate-with-arduino-uno-188a44
*/
#include "Nextion.h"
SoftwareSerial HMISerial(10, 11);
#define ledPin 13
NexButton b0 = NexButton(0, 1, "b0");
NexButton b1 = NexButton(0, 7, "b1");
NexButton b0_page2 = NexButton(0, 1, "b0");
NexNumber n1 = NexNumber(0, 5, "n0");
NexText t0 = NexText(0, 2, "t0");
NexText t1 = NexText(0, 6, "t1");
NexText t2 = NexText(0, 3, "t2");
int myInt=0;
NexTouch *nex_listen_list[] = {&b1,NULL};
/*
Difference between Serial write and print:
https://arduino.stackexchange.com/questions/10088/what-is-the-difference-between-HMISerial-write-and-HMISerial-print-and-when-are-they
*/
void b1PushCallback(void *ptr)
{
digitalWrite(ledPin, HIGH);
}
void b1PopCallback(void *ptr)
{
digitalWrite(ledPin, LOW);
}
void nextionPrint(String objectName, String value)
{
objectName = objectName + "=\""+ value + "\"";
HMISerial.print(objectName);
HMISerial.write(0xff);
HMISerial.write(0xff);
HMISerial.write(0xff);
}
void nextionPrint(String objectName,int value)
{
objectName = objectName + "=";
HMISerial.print(objectName);
HMISerial.print(value);
HMISerial.write(0xff);
HMISerial.write(0xff);
HMISerial.write(0xff);
}
void setup()
{
pinMode(ledPin,OUTPUT);
nexInit();
digitalWrite(ledPin,LOW);
b1.attachPush(b1PushCallback); //button press
b1.attachPop(b1PopCallback); //button release
nextionPrint("t1.txt", "Arduino Text");
}
void loop()
{
nexLoop(nex_listen_list);
++myInt;
nextionPrint("n0.val", myInt);
if(myInt>254)
{
myInt=0;
}
if(HMISerial.available())
{
Serial.println(HMISerial.read());
}
delay(500);
}
关于我无法从 Nextion 获取任何数据的任何提示?
【问题讨论】:
标签: arduino serial-port microcontroller arduino-uno