我对Nextion NX4024T032_011遇到问题。 我可以从Arduino Uno或Leonardo向其发送数据,但是当我按下按钮(Arduino板上的Rx二极管没有闪烁)时,Nextion似乎没有向Arduino发送数据。 在打开串行监视器后,我只能在串行端口上看到“ recvRetCommandFinished err”: recvRetCommandFinished err
据我所述,“下一步”按钮已正确设置。 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 betwen 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获取任何数据?
答案 0 :(得分:0)
首先,重新检查您声明的2个按钮的页面ID和对象ID。
NexButton b0 = NexButton(0, 1, "b0");
NexButton b0_page2 = NexButton(0, 1, "b0");
第0页上的两个按钮如何具有相同的对象ID 1 ?
此外,重新检查Tx和Rx连接。 Tx到Rx和Rx到Tx。 我希望这能解决您的问题。
答案 1 :(得分:0)
您对使用的物理引脚Arduino充满信心吗?我总是很困惑,因此我必须恢复关于IDE的引脚名称,MCU的引脚号和板的引脚号的注释。 在我的素描中,我写道:
SoftwareSerial HMISerial(10,11); // RX,TX
我正在使用Arduino Nano和 我在标记为D10的引脚(来自USB连接器的第3个)上从Nextion(蓝线)接收数据; 我将数据传输到标有D11的引脚(USB连接器的第二个)上的Nextion(黄线)。
这不是很大的帮助,但是这就是我现在所能做的一切。 祝你好运。