Nextion无法与Arduino正确通信

问题描述

我目前在有关Nextion和Arduino方面遇到问题。我处于程序的早期阶段,正在尝试使他们交流。它似乎起作用,但仅部分起作用。该程序应该打开和关闭继电器,并更改文本以及一些背景色(文本框)。该程序确实可以运行,但不会更改显示屏上的文本。随之而来的是,当您单击它时,它甚至没有发送应该应该发送的Serial.println。继电器仍然被激活。代码应该没有什么大问题,所以我想知道发生了什么。我将代码包括在内:第一个是我正在谈论的代码,非常“ 原始”,第二个是我实际要使用的代码。任何有关其为何无法正确通信(更改文本,不以串行方式打印等)的线索,将不胜感激。 (这件事对我来说很重要,因为我需要他们之间进行完美的沟通,互相发送值和执行推/弹出动作)。

谢谢您的时间。

P.S。我是这个平台的新手,所以,请不要着火了,而是尝试解释我应该做些什么/更好地解释它。

Arduino RL connections

Arduino "blueprint",RX and TX connected on D16,D17 (RX2,TX2

id

有用的一个

    #include <doxygen.h>
    #include <NexButton.h>
    #include <NexCheckBox.h>
    #include <NexConfig.h>
    #include <NexCrop.h>
    #include <NexDualStateButton.h>
    #include <NexGauge.h>
    #include <NexGpio.h>
    #include <NexHardware.h>
    #include <NexHotspot.h>
    #include <Nexnumber.h>
    #include <NexObject.h>
    #include <NexPage.h>
    #include <NexPicture.h>
    #include <NexProgressBar.h>
    #include <NexRadio.h>
    #include <NexRtc.h>
    #include <NexScrolltext.h>
    #include <NexSlider.h>
    #include <NexText.h>
    #include <NexTimer.h>
    #include <Nextion.h>
    #include <NexTouch.h>
    #include <NexUpload.h>
    #include <NexVariable.h>
    #include <NexWaveform.h>
    
    //#include <Nextion.h>
    
    NexButton bOn = NexButton (0,2,"b0");
    NexButton bOff = NexButton (0,3,"b1");
    NexText ldOn = NexText (0,5,"t0");
    NexText ldOff = NexText (0,7,"t1");
    NexText FcX = NexText (0,10,"t2");
    
    NexTouch *nex_listen_list[] = { 
      &bOn,&bOff,NULL
    };
    
    unsigned long t1,dt;
    
    // ------------------------------
    void setup() {
      Serial.begin(9600);
      Serial2.begin(9600); 
     
      delay (3500);
      Serial.println("SetUp");
      delay (1500);
      Serial.println("GO !");
    
      nexInit();
      bOn.attachPop(bton,&bOn);
      bOff.attachPop(btoff,&bOff);
    
      
      pinMode(13,OUTPUT);
      pinMode(22,OUTPUT);
      pinMode(27,INPUT_PULLUP);
      digitalWrite(13,HIGH);
      digitalWrite (22,LOW);
    
    }
    
    // ------------------------------
    void loop() {
      nexLoop(nex_listen_list);
    
      dt = millis() - t1;
      if (dt > 25) {
        updateNextion();
        t1 = millis();
      }
    }
    
    // ------------------------------
    void bton(void *ptr) {
      Serial.println();
      ldOn.Set_background_color_bco(2024);
      digitalWrite(13,HIGH);
      digitalWrite(22,HIGH);
    }
    
    // ------------------------------
    void btoff(void *ptr) {
      Serial.println();
      ldOff.Set_background_color_bco(63488);
      digitalWrite(13,LOW);
      digitalWrite(22,LOW);
    }
    
    // ------------------------------
    void updateNextion() {
      if (!digitalRead(27)) {
        FcX.Set_background_color_bco(63488);
        FcX.Set_font_color_pco(65504);
        FcX.setText("END");
        Serial.println();
      }
      else {
        FcX.Set_background_color_bco(65535);
        FcX.setText("");
        Serial.println();
      }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)