esp32s3使用多串口
我按照别人博客中设置串口2,串口打印有问题,因为没有看到esp32s3 多串口,就总结了一下自己的经验
下图为esp32的引脚图
下图为esp32s3的引脚图
ESP32-S3 有三个 UART(通用异步收发器)控制器,即 UART0、UART1、UART2,支持异步通信(RS232 和 RS485)和 IrDA,通信速率可达到 5 Mbps。UART 控制器具有如下特性:
- 支持三个可预分频的时钟源
- 可编程收发波特率
- 三个 UART 的发送 FIFO 以及接收 FIFO 共享 1024 x 8-bit RAM
- 全双工异步通信
- 支持输入信号波特率自检功能
- 支持 5/6/7/8 位数据长度
- 支持 1/1.5/2/3 个停止位
- 支持奇偶校验位
- 支持 AT_CMD 特殊字符检测
- 支持 RS485 协议
- 支持 IrDA 协议
- 支持 GDMA 高速数据通信
- 支持 UART 唤醒模式
- 支持软件流控和硬件流控
每个UART都分配有默认的 GPIO,但是根据您的 ESP32 电路设计进行更改,这些引脚可能与嵌入式闪存、板载 PSRAM 或外围设备冲突。
任何 GPIO 都可以用于使用 GPIO 矩阵的硬件 UART,因此为避免冲突,只需在构造时提供tx和 rx 引脚即可。
下面是ESP32-S3 UART的默认引脚。
UART0 | UART1 | UART2 | |
---|---|---|---|
发送(TX) | IO43 | IO17 / 任意IO | 任意IO |
接收(RX) | IO44 | IO18 / 任意IO | 任意IO |
因为我看一般说明串口1最好不要有占用,一般去使用串口0和串口2
重点怎么去知道自己arduino库是默认哪个引脚
我使用的是platformio开发,arduino ide应该同理
下图该文件下,我的路径是如下图,找到该.c文件,
这个是我的uart2的发送引脚,这个没有更改过该文件,uart2可以自定io这个没试过,毕竟是默认文件就没更改了,理论上应该可以自定义。
测试程序 UART2(TX 20 RX 19)
// Sender发送端
void setup() {
Serial.begin(115200);
Serial2.begin(115200);
Serial.println("i am serial 0");
}
void loop() {
mySerial2.println("i am serial 2ww");
delay(1000);
}
测试效果
总结
最终不管芯片型号怎么改变,都可以在那个.cpp文件进行查看。
审核编辑 黄宇
-
控制器
+关注
关注
112文章
16490浏览量
179829 -
串口
+关注
关注
14文章
1563浏览量
77255 -
ESP
+关注
关注
0文章
186浏览量
34145
发布评论请先 登录
相关推荐
请问ESP32S3从机模式下如何连续接受多帧数据?
ESP32S3外置Jtag连接失败的原因?
esp32s3 RMT多通道报错是什么原因导致的?
esp32s3 GPIO改成uart2之后没收到串口消息是怎么回事?
使用esp-idf-tools2.12不能搭建esp32s3开发环境是什么原因?
请问ESP32S3的PCLK的上限为多少?
esp32s3的启动时间远大于esp32,为什么?
ESP32S3 通过USB烧录,烧录失败
ESP32S3刷写程序不进去怎么解决?
esp32S3无法烧写的原因是什么?
ESP32S3内部外设包括DMA之类的可以直接用ESP32的配置来启用吗?
使用esp-idf-tools2.12不能搭建esp32s3开发环境的原因?
使用Arduino通过USB串行对ESP32S3进行编程和调试
![使用Arduino通过USB串行对<b class='flag-5'>ESP32S3</b>进行编程和调试](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论