Arduino 软件串口用户指南
Arduino 硬件在引脚 0 和 1 上内置了对串口通信的支持(硬件串口),但在某些情况下,比如这些引脚已经被占用或者您需要更多串口用于调试时,软件串口可能是解决方案。
这里还将使用一个示例来演示如何在您的 Arduino 上使用软件串口!
软件串口示例
/*
RX 是数字引脚 2(连接到其他设备的 TX)
TX 是数字引脚 3(连接到其他设备的 RX)
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
Serial.begin(115200);
while (!Serial) {
}
Serial.println("Goodnight moon!");
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
在实际应用中,您也可以使用其他串口设备,如串口无线透传模块、串口传感器等,只要是标准的串口设备,编程方式都大致相同。
使用多个软件串口
当您需要连接多个串口设备时,可以创建多个软件串口。但由于硬件限制,Arduino UNO 一次只能监听一个软件串口。这里提供一个多软件串口的示例:
#include <SoftwareSerial.h>
SoftwareSerial serialOne(2, 3); // 软件串口一
SoftwareSerial serialTwo(8, 9); // 软件串口二
void setup() {
Serial.begin(9600);
while (!Serial) { // 等待串口
}
serialOne.begin(9600);
serialTwo.begin(9600);
}
void loop() {
serialOne.listen(); // 监听串口一
Serial.println("Data from port one:");
while (serialOne.available() > 0) {
char inByte = serialOne.read();
Serial.write(inByte);
}
Serial.println();
serialTwo.listen(); // 监听串口二
Serial.println("Data from port two:");
while (serialTwo.available() > 0) {
char inByte = serialTwo.read();
Serial.write(inByte);
}
Serial.println();
}
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。