Arduino设置SoftwareSerial缓冲区大小

SoftwareSerial的缓冲区大小设置

概述

新的Arduino的ESP8266软串口的缓冲区原来老的库中有宏定义可以用来修改接收和发送缓冲区的大小。在现在新的库中已经没有这个设置了,那怎么才能修改缓冲区的大小哪?

修改缓冲区的大小

定义软串口

cpp 复制代码
#include 《SoftwareSerial.h>
// 程序中定义软串口
SoftwareSerial mSerial(RXD1, TXD1);
// 在setup() 定义缓冲区大小
setup()
{
	Serial.begin(115200);
	delay(2000);
	mSerial.begin(19200,SWSERIAL_8N1,RXD1,TXD1,false,256);
}

这就可以将缓冲区修改成256个字节。

实验

原来在程序中默认大小为64个字节

cpp 复制代码
void begin(uint32_t baud, Config config,
        int8_t rxPin, int8_t txPin, bool invert,
        int bufCapacity = 64, int isrBufCapacity = 0) {
        UARTBase::begin(baud, config, rxPin, txPin, invert);
        if (GpioCapabilities::isValidInputPin(rxPin)) {
            beginRx(GpioCapabilities:: hasPullUp(rxPin), bufCapacity, isrBufCapacity);
        }
        if (GpioCapabilities::isValidOutputPin(txPin)) {
            beginTx();
        }
        enableRx(true);
    }

现在经过调用begin,将缓冲区扩大为256.

实际运行结果:

相关推荐
Sakura_j_h_17 分钟前
51 单片机驱动四位数码管:动态扫描、限流电阻与消影的取舍
单片机·嵌入式硬件·51单片机·嵌入式·数码管·动态扫描·限流电阻
蹊黎13 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
无敌贵点大王17 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何17 小时前
二进制和十六进制
stm32·单片机
国科安芯18 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
不昀20 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵21 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
集芯微电科技有限公司1 天前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络
十八岁牛爷爷1 天前
STM32H7 长时间运行后 HTTP 断连:从“串口还活着”到 TX 描述符错账
stm32·单片机·嵌入式硬件
Lxx_Zw1 天前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件