Arduino-软串口

 1.什么是软串口

软串口跟硬串口一样,只不过用两个数字IO口代替RX、TX,以此来解决RX、TX串口通信相关问题。

2.怎么使用软串口

2.1 有哪些软串口库

常用的软串口库:SoftwareSerial库、AltSoftSerial库、NewSoftSerial库;

2.2 这些软串口库有什么区别

(1)支持的硬件平台和芯片型号不同:

SoftwareSerial库只支持Arduino Uno、Mega等基于ATmega328P和ATmega2560芯片的开发板;而AltSoftSerial库则支持更多的芯片型号,包括ATtiny、ATmega、SAM3X8E等;NewSoftSerial库则支持更多的Arduino开发板和芯片型号,包括ESP8266、ESP32、ATtiny等。

(2)可用的IO口数量和频率不同:

SoftwareSerial库只支持两个IO口(RX和TX),并且最高通信速率只能达到115200bps;而AltSoftSerial库则支持多个IO口,最高通信速率可以达到31250bps;NewSoftSerial库则支持多个IO口,最高通信速率可以达到38400bps。

(3)稳定性和可靠性不同:

SoftwareSerial库在高速通信时容易出现数据丢失或错位的问题,而AltSoftSerial库和NewSoftSerial库则相对稳定可靠。

(4)使用的方法和API不同:

SoftwareSerial库和NewSoftSerial库使用方法和API比较类似,而AltSoftSerial库则有自己独特的API和使用方法。总之,不同的软串口库有各自的特点和适用范围,需要根据实际需求进行选择。一般情况下,如果需要高速通信和稳定性较好的软串口,可以选择AltSoftSerial库或NewSoftSerial库;如果硬件平台和芯片型号较为受限,可以选择SoftwareSerial库。

2.3 使用软串口示例

首先下载相应的库文件: SoftwareSerial库

以arduino uno r3开发板为例,应用代码如下:


#include <SoftwareSerial.h>  //引用库文件
 // 定义软串口 RX(D0口), TX(D1口)和软串口对象DLSerial
SoftwareSerial DLSerial(0, 1); 
//其它操作就跟Serial一样了
//如:
DLSerial.begin(9600);
DLSerial.read();
DLSerial.write();
DLSerial.available();
DLSerial.print();
DLSerial.println();

3.注意事项

  • Esp8266开发板或者带有Esp8266微控制器的开发板(如Wemos D1 wifi开发板等)不支持SoftwareSerial库

这是因为ESP8266芯片只有一个硬件串口,而没有额外的硬件资源用于实现软件串口。因此,如果需要使用多个串口,可以考虑使用其他支持多串口的开发板,如Arduino Mega等。

  • 不建议使用软串口

软串口的稳定性和可靠性不如硬件串口,容易出现数据错位、丢失等问题。因此,在使用软串口时,需要尽量减少串口通信速率,以保证数据的可靠传输。

  • 使用软串口前应仔细阅读软串口库的文档和参考资料

在使用软串口时,需要注意串口通信协议的选择和设置。软串口可以支持多种不同的串口通信协议,如8位数据位、无校验位、1位停止位的标准串口通信协议,也可以支持其他自定义的串口通信协议。

在使用软串口时,需要根据实际需求选择合适的串口通信协议,并进行相应的设置。

总之,在使用软串口时,需要仔细阅读软串口库的文档和参考资料,了解其特性和限制,以确保程序能够正确运行。同时,需要注意串口通信的稳定性和可靠性,以及程序的实时性和响应速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucas085501

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值