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

你可能感兴趣的:(arduino)