Arduino ESP32串口通信指南

Arduino的ESP32的三个串口

ESP32的三个串口

在Arduino的核心中有三个串口,分别是Serial,Serial1,和Serial2. 当然ESP32也可以使用软串口。但硬件串口更稳健(我这样理解)。但Serial1这个串口不能使用,因为端口GPIO6 ~ GPIO11都用到了Flash。那如何使用你的Serial1串口哪?可以通过改变串口1的rxPin和txPin的方法,具体如下。

Serial1 的使用

在ESP32的核心库安装目录下找到HardwareSerial.h库。从头文件中看到:

void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms = 20000UL);
    void end();

从这个begin函数中可以看到,如果在初始化中改变默认的rxPin和txPin,让我们来试一下,在setup()函数中用下面的句子初始化串口1:

	Serial1.begin(115200, SERIAL_8N1, 18, 19);

在后续的程序中就可以对串口正常使用了。

例子程序

void loop()
{
    Serial1.println("The year is a great year!");
    delay(1000);
    digitalToggle(LED_BUILTIN);
    while ( Serial.available())
        Serial.write(Serial.read());
}

程序在循环中先通过Serial1发送一个字符串,将GPIO18管脚和GPIO3连接。在串口1上输出:

这样串口1就可以正常使用了。

物联沃分享整理
物联沃-IOTWORD物联网 » Arduino ESP32串口通信指南

发表评论