Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nextion未向Arduino发送数据(recvRetCommandFinished错误)_Arduino_Nextion - Fatal编程技术网

Nextion未向Arduino发送数据(recvRetCommandFinished错误)

Nextion未向Arduino发送数据(recvRetCommandFinished错误),arduino,nextion,Arduino,Nextion,我对Nextion NX4024T032\u 011有问题。我可以将数据从Nextion发送到Arduino,但问题是Arduino中的Tx led闪烁。其中,根据我在串行端口上观察到的情况,Nextion不接受来自arduino的数据,我只能在打开串行监视器后看到“recvRetCommandFinished err”: 在nextion中创建的GUI是: 如果我按下串行监视器中的按钮,我可以查看:但数字不会打印,并且在显示中递增或递减 我正在使用这个库:用于Arduino mega 2560

我对Nextion NX4024T032\u 011有问题。我可以将数据从Nextion发送到Arduino,但问题是Arduino中的Tx led闪烁。其中,根据我在串行端口上观察到的情况,Nextion不接受来自arduino的数据,我只能在打开串行监视器后看到“recvRetCommandFinished err”:

在nextion中创建的GUI是:

如果我按下串行监视器中的按钮,我可以查看:但数字不会打印,并且在显示中递增或递减

我正在使用这个库:用于Arduino mega 2560,使用序列2进行通信

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);
}

recvRetCommandFinished err

中的err更改为OK的任何提示这是NexHardware.cpp中函数“recvRetCommandFinished()”的返回

如果分析此文件,您将在收到此字符串时发现:

recvRetCommandFinished错误

这意味着arduino无法从Nextion所连接的序列中读取响应,该序列在NexConfig.h中指定

#define nexSerial Serial2

我有一个类似的问题,当我修改硬件连接时,我可以知道电子设备上发生了什么,而不是草图上发生了什么。

现在它工作正常,实际上问题出在我使用的电缆上