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.

实际运行结果:

相关推荐
Lhj061618 小时前
stm32 can错误中断不处理
stm32·单片机·嵌入式硬件
啃硬骨头19 小时前
AURIX-TC3xx-GTM详解六-DPLL(Digital PLL Module)
单片机·嵌入式硬件
hazy1k19 小时前
51单片机基础-RS485通信
stm32·单片机·嵌入式硬件·51单片机
三佛科技-1341638421220 小时前
脱毛仪方案开发,家用激光毛仪/电动脱毛仪MCU方案设计
单片机·嵌入式硬件
阿川!20 小时前
嵌入式软件--STM32 SPI通信(上)
stm32·单片机·嵌入式硬件
芯岭21 小时前
内含32位MCU的无线收发芯片XL2422
单片机·嵌入式硬件·信息与通信·射频工程
1379号监听员_1 天前
嵌入式软件架构--按键消息队列3(测试)
开发语言·stm32·单片机·嵌入式硬件·架构
迎風吹頭髮1 天前
Linux服务器编程实践57-功能强大的网络信息函数getaddrinfo:支持IPv4与IPv6
单片机·嵌入式硬件
GilgameshJSS1 天前
STM32H743-ARM例程26-TCP_CLIENT
c语言·arm开发·stm32·单片机·tcp/ip
清风6666661 天前
基于单片机的开尔文电路电阻测量WIFI上传设计
单片机·嵌入式硬件·毕业设计·课程设计