Nextion NX4024T032_011 に問題があります。Nextion から Arduino にデータを送信できますが、問題は arduino の Tx led が点滅することです。arduinoからのデータがNextionによって受け入れられないため、シリアルポートで観察したところ、シリアルモニターを開いた直後に「recvRetCommandFinished err」しか表示されません:recvRetCommandFinished err
nextion で作成した GUI は : Nextion GUI
シリアル モニタのボタンを押すと、次のように表示されます。シリアル出力が表示されますが、数値が印刷されず、表示が増分または減分されません。
私はこのライブラリを使用しています: Serial2を使用した通信を備えたArduino mega 2560用のNextionライブラリ
NexConfig.h
#define nexSerial Serial2
Arduinoコード:
#include "Nextion.h"
void t0PopCallback(void *ptr);
void b0PopCallback(void *ptr);
void b1PopCallback(void *ptr);
NexText t0 = NexText(0, 3, "t0");
NexButton b0 = NexButton(0, 1 ,"b0");
NexButton b1 = NexButton(0, 2, "b1");
char buffer[100] = {0};
NexTouch *nex_listen_list[] =
{
&t0,
&b0,
&b1,
NULL
};
void t0PopCallback(void *ptr)
{
dbSerialPrintln("t0PopCallback");
t0.setText("50");
}
void b0PopCallback(void *ptr)
{
uint16_t len;
uint16_t number;
dbSerialPrintln("b0PopCallback");
memset(buffer, 0, sizeof(buffer));
t0.getText(buffer, sizeof(buffer));
number = atoi(buffer);
number += 1;
memset(buffer, 0, sizeof(buffer));
itoa(number, buffer, 10);
t0.setText(buffer);
digitalWrite(LED_BUILTIN, HIGH);
}
void b1PopCallback(void *ptr)
{
uint16_t len;
uint16_t number;
dbSerialPrintln("b1PopCallback");
memset(buffer, 0, sizeof(buffer));
t0.getText(buffer, sizeof(buffer));
number = atoi(buffer);
number -= 1;
memset(buffer, 0, sizeof(buffer));
itoa(number, buffer, 10);
t0.setText(buffer);
digitalWrite(LED_BUILTIN, LOW);
}
void setup(void)
{
pinMode(LED_BUILTIN,OUTPUT);
nexInit();
t0.attachPop(t0PopCallback);
b0.attachPop(b0PopCallback);
b1.attachPop(b1PopCallback);
dbSerialPrintln("setup done");
}
void loop(void)
{
nexLoop(nex_listen_list);
}
そのerrをrecvRetCommandFinished errでOK に変更するためのヒント