日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

arduino pmw 串口 字符串_ESP32 Arduino开发:串口(Serial port)

發布時間:2023/12/15 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。