arduino修改串口緩衝區大小的三種辦法

由於SoftwareSerial.h默認只接收64字節串行緩衝區,Arduino會將之後接收到的數據丟棄,不滿足業務需求。
以下三種方法是筆者參考網上各種資料總結出來,對於WEMOS D1 R2,筆者只有方法一可行,其他兩個方法僅供參考。

方法一:修改緩衝區宏名(可行)

此方法針對WEMOS D1 R2可行,因爲集成esp8266模塊,該模塊自帶SoftwareSerial,修改SoftwareSerial.h即可!

  //SoftwareSerial(int receivePin, int transmitPin, bool inverse_logic = false, unsigned int buffSize = 64);
  SoftwareSerial(int receivePin, int transmitPin, bool inverse_logic = false, unsigned int buffSize = 2048);

目錄(僅供參考):C:\Users\Administrator\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0\libraries\SoftwareSerial

方法二:修改SoftwareSerial.h

此方法是Arduino論壇評論看到的,理論上加到程序頭即可,也可以在SoftwareSerial.h中修改。

//#define _SS_MAX_RX_BUFF 64 // RX buffer size
#define _SS_MAX_RX_BUFF 2048 // RX buffer size

目錄(僅供參考):C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src

方法三:修改緩衝區宏名

此方法是Arduino官方給出的方法,理論上加到程序頭即可,也可以在HardwareSerial.h中修改。請注意如果你使用SoftwareSerial.h此方法一定不行

#define SERIAL_RX_BUFFER_SIZE 2048 //修改串口發送緩衝區大小爲2048
#define SERIAL_TX_BUFFER_SIZE 2048 //修改串口接收緩衝區大小爲2048
發佈了24 篇原創文章 · 獲贊 4 · 訪問量 71萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章