【问题标题】:Unable to read serial/uart pins on NodeMCU无法读取 NodeMCU 上的串行/UART 引脚
【发布时间】:2019-10-05 18:23:50
【问题描述】:

我无法在 NodeMCU Lua 环境中读取串行引脚。我只能读取USB串口。

我已将串行适配器连接到 rx、tx 和 g 引脚。

我试过这段代码:

uart.on("data","\n",function(data) print("receive from uart:", data) end, 0)

我在 ESPlorer 控制台中输入了文本,它确实会读取。它不会读取我通过插入 rx/tx/g 引脚的串行适配器发送的任何内容。


uart.write(0, "hello")

我断开了 USB 电缆并使用串行适配器为其供电。没有使用此代码发送任何内容。我试过uart.write(0,uart.write(1,


如何读取pin串口而不是usb串口?

【问题讨论】:

标签: lua nodemcu


【解决方案1】:

我需要拔下 USB 电缆。如果 USB 电缆已插入并且您尝试使用 pin 串行端口,则设备会混淆。

在 esp 论坛上查看我的问题: https://www.esp8266.com/viewtopic.php?f=22&t=19768

【讨论】:

    【解决方案2】:

    您必须使用与 RX 和 TX 不同的引脚,因为它们与您将 NodeMCU 连接到 PC 的 USB 端口相同

    借助 https://github.com/scottwday/EspSoftSerial 库,您可以使用任何其他 2 个空闲 gpio 引脚作为串行端口。该库专门针对您的 NodeMCU 所基于的 ESP8266。

    这样你就有了2个串口,一个通过usb,另一个连接到其他设备。

    一些简单的代码来实现下面的软件序列。

        #include <SoftwareSerial.h>
    
        #define BAUD_RATE 9600
    
        SoftwareSerial Serial2(D8, D7, false, 8); //Here you choose the pins you connect the RX TX device to 
                                                 //The first pin you choose is RX the second TX 
                                                 // in my example these are the D8 and D7 pins on the nodeMCU
                                                 // D8=RX .... D7=TX 
    
        void setup() {
          Serial.begin(BAUD_RATE);
          Serial2.begin(BAUD_RATE);
    
          Serial.println(" ### Hello ###");
          Serial2.println(" ### Hello ###");
    
     }
    
    
    void loop() {
    
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-27
      • 2013-09-09
      • 2022-01-20
      • 2016-04-26
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多