Arduino基础入门(3)— 使用软件模拟串口通信
一、前言
除了Arduino开发板芯片自带的一个硬件出口外,Arduino还提供了SoftwareSerial类库,它可以将你的其他数字引脚通过程序模拟成串口通信引脚。
软串口是由程序模拟实现的,使用方法类似硬件串口,但有一定局限性:在Arduino UNO MEGA上部分引脚不能被作为软串口接收引脚,且软串口接收引脚波特率建议不要超过57600。
二、SoftwareSerial类库
软串口类库并非Arduino核心类库,因此使用前需要先声明包含SoftwareSerial.h
头文件。
其中定义的成员函数与硬件串口类似,available()、begin()、read()、write()、print()、println()、peek() 等用法相同,这里便不一一列举。
此外软串口后还有如下成员函数:
-
SoftwareSerial()
SoftwareSerial类的构造函数,通过它可指定软串口RX、TX引脚。
语法:SoftwareSerial mySerial= SoftwareSerial(rxPin, txPin) SoftwareSerial mySerial(rxPin, txPin)
参数:
mySerial
:用户自定义软件串口对象
rxPin
:软串口接收引脚
txPin
:软串口发送引脚 -
listen()
开启软串口监听状态。
Arduino UNO在同一时间仅能监听一个软串口,当你需要监听某一软串口时,需要该对象调用这个函数开启监听功能。
语法:mySerial.listen(mySerial)
参数:
mySerial:用户自定义的软件串口对象 -
isListening()
监测软串口是否正在监听状态。
语法:mySerial.isListening()
参数:
mySerial
:用户自定义的软件串口对象
返回值:
Boolean型
True:正在监听
False:没有监听 -
end()
停止监听软串口。
语法:mySerial. end()
参数:
mySerial
:用户自定义的软件串口对象
返回值:
Boolean
型
True
:关闭监听成功
False
:关闭监听失败 -
overflow()
检测缓冲区是否溢出。
语法:mySerial.overflow()
参数:
mySerial
:用户自定义的软件串口对象
返回值:
Boolean型
True
:溢出
False
:没有溢出