arduino pmw 串口 字符串_ESP32 Arduino开发:串口(Serial port)
基本使用:
ESP32有三個串口,分別是Serial、Serial1、Serial2,下面對基本使用做個示范:
同Arduino原版的串口一樣Serial、Serial1、Serial2是在HardwareSerial.h中被聲明的HardwareSerial對象,所以詳細用法也可以參考HardwareSerial庫(見下文);
注意:使用Serial1(U1TXD=GPIO10,U1RXD=GPIO9)時程序無法正常運行。因為ESP32的GPIO6~11一般用于連接外部Flash芯片,而ESP32的程序都是在這上面的,但是Serial1默認使用了GPIO9和10,從而導致程序崩潰:
解決:ESP32片上功能模組所發出的信號可映射到任何 GPIO管腳,使用Arduino core for the ESP32中自帶的HardwareSerial庫就可以將串口RX映射到幾乎所有IO口上,TX映射到GPIO0~31上(沒有全部進行測試)。
HardwareSerial庫使用
圖中通過HardwareSerial庫實現了對串口1的使用,具體說明見下文。
詳細說明
使用HardwareSerial庫需要先聲明一個對象,例如上文圖中的HardwareSerial mySerial1(1);;
HardwareSerial類在聲明對象時接收一個輸入參數(0、1、2),分別代表Serial、Serial1、Serial2;
聲明對象后就可以按一般串口的方法使用了,方法說明如下:
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);使能串口,參數如下:
baud:串口波特率,該值寫0則會進入自動偵測波特率程序;
config:串口參數,默認SERIAL_8N1為8位數據位、無校驗、1位停止位;
rxPin:接收管腳針腳號;
txPin:發送管腳針腳號;
invert:翻轉邏輯電平,串口默認高電平為1、低電平為0;
timeout_ms:自動偵測波特率超時時間,如果超過該時間還未獲得波特率就不會使能串口;
void end();失能串口,釋放資源;
void updateBaudRate(unsigned long baud);重新設置波特率;
int available(void);返回接收緩存可讀取字節數;
int availableForWrite(void);ESP32默認有128字節的硬件TX FIFO,該方法返回TX FIFO空閑字節數;
int peek(void);返回接收緩存中第一個字節數據,但并不從中刪除它;
int read(void);返回接收緩存中第一個字節數據,讀取過的數據將從接收緩存中清除;
void flush(void);等待串口收發完畢;
size_t write(uint8_t);寫數據到TX FIFO,在發送FIFO中的數據會自動輸出到TX端口上;
該方法有很多重載,可以用來發送字符串、長整型、整形;
如果TX FIFO已滿,則該方法將阻塞;
size_t write(const uint8_t *buffer, size_t size);寫數據到TX FIFO,如果發送FIFO已滿,則該方法將阻塞;
uint32_t baudRate();返回當前串口波特率;
size_t setRxBufferSize(size_t);設置接收緩存大小(默認為256字節);
ESP32默認有128字節的硬件RX FIFO,在RX FIFO收到數據后會移送到上面的接收緩存中;
void setDebugOutput(bool);設置該串口打印Debug信息(默認為0,失能后也會置為0);這個方法是用來設置從哪個串口打印的,需要在Arduino IDE>工具中啟用Debug才會真正打印信息;(這里有一點點問題,這個庫里如果沒有別的串口用于打印調試信息,則Serial,即uart0一定會被用于打印調試信息,并且至少會打印Error信息)
在這里插入圖片描述
除上面方法外,因為繼承自Stream類所以也可以用該類的方法:如size_t readBytes(char *buffer, size_t length);和size_t readBytes(uint8_t *buffer, size_t length)等。
總結
以上是生活随笔為你收集整理的arduino pmw 串口 字符串_ESP32 Arduino开发:串口(Serial port)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票印花税怎么算
- 下一篇: jdbc 生成建表语句_JDBC数据库连