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
  • 7
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值