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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ESP-8266 串口通信(Serial)

發布時間:2023/12/19 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 ESP-8266 串口通信(Serial) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ESP8266的串口通信與傳統的Arduino設備完全一樣。除了硬件FIFO(128字節用于TX和RX)之外,硬件串口還有額外的
256字節的TX和RX緩存。發送和接收全都由中斷驅動。當FIFO/緩存滿時,write函數會阻塞工程代碼的執行,等待空閑空間。
當FIFO/緩存空時,read函數也會阻塞工程代碼的執行,等待串口數據進來。
NodeMcu上有兩組串口,Serial和Serial1。

Serial使用UART0,默認對應引腳是GPIO1(TX--D10)和GPIO3(RX--D9)

在Serial.begin執行之后,調用Serial.swap()可以將Serial重新映射到GPIO15(TX---D8)和GPIO13(RX---D7)。再次調用Serial.swap()將Serial重新映射回GPIO1--D10和GPIO3--D9。不過,一般
情況下,默認就好


例子一:映射

void setup() { 
Serial.begin(115200);
Serial.println("GPIO1(TX),GPIO3(RX)");
Serial.swap();//調用映射方法
Serial.println("GPIO15(TX1),GPIO13(RX1)");
Serial.swap();
Serial.println("GPIO1(TX),GPIO3(RX)");
 }
 void loop() { 

 }

Serial1使用UART1,默認對應引腳是GPIO2(TX----D4)。Serial1不能用于接收數據,因為它的RX引腳被用于flash芯片連接---D3。
要使用Serial1,請調用Serial.begin(baudrate)

如果不使用Serial1并且不映射串口,可以將UART0的TX映射到GPIO2,具體操作是:在Serial.begin()之后調用
Serial.set_tx(2)或者直接調用Serial.begin(baud,config,mode,2)。

默認情況下,當調用Serial.begin后,將禁用WiFi庫的診斷輸出。要想再次啟動調試輸出,請調用
Serial.setDebugOutput(true)。要將調試輸出映射到Serial1時,需要調用Serial1.setDebugOutput(true)

調用Serial.setRxBufferSize(size_t size)允許定義接收緩沖區的大小,默認值是256(緩沖區也是使用內存,意味著不能一
味地去增大這個值)。 Serial和Serial1對象都支持5,6,7,8個數據位,奇數(O)、偶數(E)和無(N)奇偶校驗,以
及1或者2個停止位。要設置所需的模式,請調用Serial.begin(baudrate, SERIAL_8N1), Serial.begin(baudrate, SERIAL_6E2)

Serial和Serial1都實現了一種新方法用來獲取當前的波特率設置。要獲取當前的波特率,請調用Serial.baudRate(),
Serial1.baudRate()

例子:---獲取波特率

void setup() { 
Serial.begin(57600);
int br = Serial.baudRate();  //獲取當前波特率
Serial.printf("當前波特率是 %d bps
", br);
 }
void loop() { 

 }


串口用處

一般來說,串口通信用在兩個方面:
1.與外圍串口設備傳輸數據,比如藍牙模塊、Arduino等等;
2.開發過程中用來調試代碼,通過串口輸出Debug信息了解程序運行信息











天子驕龍

總結

以上是生活随笔為你收集整理的ESP-8266 串口通信(Serial)的全部內容,希望文章能夠幫你解決所遇到的問題。

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