Arduino ESP32的串口

文章讲述了ESP32微控制器在Arduino环境中的三个串口,重点讨论了如何通过改变Serial1的rxPin和txPin来使用它,因为默认的GPIO6~GPIO11被Flash占用。通过在`setup()`函数中初始化Serial1,例如`Serial1.begin(115200,SERIAL_8N1,18,19)`,可以使其正常工作。示例程序展示了如何发送字符串并通过串口1进行通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值