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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

ESP-8266 串口通信(Serial)

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

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

Serial使用UART0,默認(rèn)對應(yīng)引腳是GPIO1(TX--D10)和GPIO3(RX--D9)

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


例子一:映射

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

 }

Serial1使用UART1,默認(rèn)對應(yīng)引腳是GPIO2(TX----D4)。Serial1不能用于接收數(shù)據(jù),因為它的RX引腳被用于flash芯片連接---D3。
要使用Serial1,請調(diào)用Serial.begin(baudrate)

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

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

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

Serial和Serial1都實(shí)現(xiàn)了一種新方法用來獲取當(dāng)前的波特率設(shè)置。要獲取當(dāng)前的波特率,請調(diào)用Serial.baudRate(),
Serial1.baudRate()

例子:---獲取波特率

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

 }


串口用處

一般來說,串口通信用在兩個方面:
1.與外圍串口設(shè)備傳輸數(shù)據(jù),比如藍(lán)牙模塊、Arduino等等;
2.開發(fā)過程中用來調(diào)試代碼,通過串口輸出Debug信息了解程序運(yùn)行信息











天子驕龍

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。