Nextion не отправляет данные в Arduino (ошибка recvRetCommandFinished)

У меня проблема с Nextion NX4024T032_011. Я могу отправлять на него данные из Nextion в Arduino, но проблема в том, что индикатор Tx мигает в Arduino. Где, поскольку данные от Arduino не принимаются Nextion, насколько я заметил. На последовательном порту я могу видеть только "recvRetCommandFinished err" сразу после открытия Serial-Monitor:recvRetCommandFinished err

Графический интерфейс, созданный в nextion: GUI Nextion

Если я нажимаю кнопку на последовательном мониторе, я могу просматривать: Последовательный вывод, но число не печатается и не увеличивается или уменьшается на дисплее

Я использую эту библиотеку: библиотека Nextion для Arduino mega 2560 с коммуникацией через Serial2

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 на OK в recvRetCommandFinished эээ

1 ответ

Это результат функции recvRetCommandFinished() в файле NexHardware.cpp.

Если вы проанализируете этот файл, вы узнаете, когда получите эту строку:

recvRetCommandFinished err

Это означает, что arduino не может прочитать ответ от серийного номера, к которому подключен Nextion, указанного в NexConfig.h

У меня была аналогичная проблема, и когда я пересмотрел свои аппаратные соединения, я смог выяснить, что происходит с электроникой, а не на эскизе.

Другие вопросы по тегам