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文章
16466瀏覽量
179620 -
串口
+關注
關注
14文章
1559瀏覽量
77139 -
ESP
+關注
關注
0文章
186瀏覽量
34112
發布評論請先 登錄
相關推薦
請問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)
評論