esp32s3使用多串口
我按照別人博客中設(shè)置串口2,串口打印有問題,因為沒有看到esp32s3 多串口,就總結(jié)了一下自己的經(jīng)驗
下圖為esp32的引腳圖
下圖為esp32s3的引腳圖
ESP32-S3 有三個 UART(通用異步收發(fā)器)控制器,即 UART0、UART1、UART2,支持異步通信(RS232 和 RS485)和 IrDA,通信速率可達(dá)到 5 Mbps。UART 控制器具有如下特性:
- 支持三個可預(yù)分頻的時鐘源
- 可編程收發(fā)波特率
- 三個 UART 的發(fā)送 FIFO 以及接收 FIFO 共享 1024 x 8-bit RAM
- 全雙工異步通信
- 支持輸入信號波特率自檢功能
- 支持 5/6/7/8 位數(shù)據(jù)長度
- 支持 1/1.5/2/3 個停止位
- 支持奇偶校驗位
- 支持 AT_CMD 特殊字符檢測
- 支持 RS485 協(xié)議
- 支持 IrDA 協(xié)議
- 支持 GDMA 高速數(shù)據(jù)通信
- 支持 UART 喚醒模式
- 支持軟件流控和硬件流控
每個UART都分配有默認(rèn)的 GPIO,但是根據(jù)您的 ESP32 電路設(shè)計進(jìn)行更改,這些引腳可能與嵌入式閃存、板載 PSRAM 或外圍設(shè)備沖突。
任何 GPIO 都可以用于使用 GPIO 矩陣的硬件 UART,因此為避免沖突,只需在構(gòu)造時提供tx和 rx 引腳即可。
下面是ESP32-S3 UART的默認(rèn)引腳。
UART0 | UART1 | UART2 | |
---|---|---|---|
發(fā)送(TX) | IO43 | IO17 / 任意IO | 任意IO |
接收(RX) | IO44 | IO18 / 任意IO | 任意IO |
因為我看一般說明串口1最好不要有占用,一般去使用串口0和串口2
重點怎么去知道自己arduino庫是默認(rèn)哪個引腳
我使用的是platformio開發(fā),arduino ide應(yīng)該同理
下圖該文件下,我的路徑是如下圖,找到該.c文件,
這個是我的uart2的發(fā)送引腳,這個沒有更改過該文件,uart2可以自定io這個沒試過,畢竟是默認(rèn)文件就沒更改了,理論上應(yīng)該可以自定義。
測試程序 UART2(TX 20 RX 19)
// Sender發(fā)送端
void setup() {
Serial.begin(115200);
Serial2.begin(115200);
Serial.println("i am serial 0");
}
void loop() {
mySerial2.println("i am serial 2ww");
delay(1000);
}
測試效果
總結(jié)
最終不管芯片型號怎么改變,都可以在那個.cpp文件進(jìn)行查看。
審核編輯 黃宇
-
控制器
+關(guān)注
關(guān)注
114文章
17048瀏覽量
183518 -
串口
+關(guān)注
關(guān)注
15文章
1586瀏覽量
79562 -
ESP
+關(guān)注
關(guān)注
0文章
192瀏覽量
34842
發(fā)布評論請先 登錄
請問ESP32S3從機(jī)模式下如何連續(xù)接受多幀數(shù)據(jù)?
ESP32S3外置Jtag連接失敗的原因?
esp32s3 RMT多通道報錯是什么原因?qū)е碌模?/a>
esp32s3 GPIO改成uart2之后沒收到串口消息是怎么回事?
使用esp-idf-tools2.12不能搭建esp32s3開發(fā)環(huán)境是什么原因?
請問ESP32S3的PCLK的上限為多少?
esp32s3的啟動時間遠(yuǎn)大于esp32,為什么?
ESP32S3 通過USB燒錄,燒錄失敗
ESP32S3刷寫程序不進(jìn)去怎么解決?
esp32S3無法燒寫的原因是什么?
ESP32S3內(nèi)部外設(shè)包括DMA之類的可以直接用ESP32的配置來啟用嗎?
使用esp-idf-tools2.12不能搭建esp32s3開發(fā)環(huán)境的原因?
使用Arduino通過USB串行對ESP32S3進(jìn)行編程和調(diào)試

評論