如何使用ESP32获取陶晶驰串口屏控件的值(语言-c++)


volatile int item;
volatile int KQ;

void TXT_HMI(String widget_name, int display_str) {
  for (int i = 1; i <= 3; i = i + (1)) {
    Serial.write(0xff);
  }
  Serial.print(String(widget_name) + String("=") + String(display_str));
  for (int i = 1; i <= 3; i = i + (1)) {
    Serial.write(0xff);
  }
}

void TXT_HMI2(String widget_name, String display_str) {
  for (int i = 1; i <= 3; i = i + (1)) {
    Serial.write(0xff);
  }
  Serial.print(String(widget_name) + String("=\"") + String(display_str) + String("\""));
  for (int i = 1; i <= 3; i = i + (1)) {
    Serial.write(0xff);
  }
}

void setup(){
  Serial.begin(9600);
  item = 0;
  KQ = 0;
  pinMode(34, INPUT);
  pinMode(35, INPUT);
}

void loop(){
  KQ = analogRead(34);
  TXT_HMI("n0.val", KQ);
  delay(20);
  if (digitalRead(35) == 0) {
    TXT_HMI2("bt0.txt", "正常");

  } else {
    TXT_HMI2("bt0.txt", "失效");

  }
    printf=("get n1.type");

  }

使用官方指令集中get指令,用printf接收get指令中n1的数值,但是ESP32无法接收
整体程序是使用ESP32接收俩个传感器的数据发送至串口屏,现在想增加一个小功能,获取串口屏n1控件的值,无法实现

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    我了解你想要在ESP32中通过串口屏控件获取n1的值,但是目前你尝试使用官方指令集中的get指令并且打印出n1的值时失败了。在这种情况下,我建议你检查以下几个方面:

    1. 确认ESP32和串口屏之间的连接是否正确。检查线路连接是否正确,以及波特率是否匹配。

    2. 确保你使用的get指令是正确的。你可以尝试使用其他指令或查询串口屏的文档来验证get指令是否正确。

    3. 确认ESP32正确接收到get指令的返回值。你可以在接收到串口屏返回的数据后,通过串口打印出来进行验证。

    如果你确定以上三个方面都正确无误,但还是无法获取n1的值,那么我建议你尝试使用其他方法。你可以尝试使用ESP32的软件串口来模拟两个串口之间的交互,并通过打印调试信息来排查问题。在代码实现过程中,你可以使用Serial library来模拟串口的交互。例如:

    // 配置软串口
    SoftwareSerial mySerial(16, 17); // RX, TX
    
    void setup() 
    {
      // 打开串口:
      Serial.begin(9600);
      while (!Serial) {
        ; // 等待串口准备好
      }
    
      // 配置软串口:
      mySerial.begin(9600);
    }
    
    void loop() 
    {
      if (mySerial.available()) {
        Serial.write(mySerial.read());
      }
      if (Serial.available()) {
        mySerial.write(Serial.read());
      }
    }
    

    在使用软串口之后,你可以通过串口打印来验证你是否能正确获取到n1的值。如果还有问题,你可以在问题描述中提供更多细节,这样chatbot就能更好地理解你的问题并提供更具体的解决方案了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^