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就可以正常使用了。