这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版 | |||
reference:library:softwareserial [2019/08/08 07:20] – [SoftwareSerial Library] 弘毅 | reference:library:softwareserial [2023/06/07 04:24] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== SoftwareSerial Library ====== | ||
+ | 串行总线通过一个称为UART的硬件(芯片内置)进行。这个硬件允许单片机接收串行通信,即使芯片在进行其他工作,只要有64个字节的串行缓冲器的储存空间即可。 | ||
+ | |||
+ | 使用软件的复制功能(因此称为“SoftwareSerial”),现有的SoftwareSerial 库,以允许其他的控制器的数字引脚的串行通信,这可能有多个软件串口速度高达115200bps。一个参数使反转信号要求该协议的设备。 | ||
+ | |||
+ | |||
+ | ===== 限制 ===== | ||
+ | |||
+ | 库具有以下已知的限制: | ||
+ | * 如果使用多个串口软件,一次只有一个软件可以接收数据。 | ||
+ | * 在Mega 2560 上,不是所有的引脚都支持中断,允许用于RX的引脚包括:10, | ||
+ | * 实际环境软串口速度太快可能工作会不稳定,推荐不要超过4800波特率 | ||
+ | ===== 例子 ===== | ||
+ | <code cpp> | ||
+ | /* | ||
+ | Software serial multiple serial test | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | * RX是数字引脚2(连接到其他设备的TX) | ||
+ | * TX是数字引脚3(连接到其他设备的RX) | ||
+ | |||
+ | */ | ||
+ | #include < | ||
+ | |||
+ | SoftwareSerial mySerial(2, 3); // RX, TX | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | // | ||
+ | Serial.begin(57600); | ||
+ | while (!Serial) { | ||
+ | ; // 等待串口连接 | ||
+ | } | ||
+ | |||
+ | |||
+ | Serial.println(" | ||
+ | |||
+ | // 设置串口通讯的速率 | ||
+ | mySerial.begin(4800); | ||
+ | mySerial.println(" | ||
+ | } | ||
+ | |||
+ | void loop() // 循环 | ||
+ | { | ||
+ | if (mySerial.available()) | ||
+ | Serial.write(mySerial.read()); | ||
+ | if (Serial.available()) | ||
+ | mySerial.write(Serial.read()); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== 函数 ===== | ||
+ | |||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | * [[reference: | ||
+ | |||
+ | |||
+ |