创客百科

姿势共享,有节操无门槛参与的创客百科,创客动力之源 \ (^_^) /

用户工具

站点工具


arduino:libraries:softwareserial

SoftwareSerial Library

现有的Arduino硬件支持引脚0和1(通过USB连接到到电脑)进行串行通信。串行通过一个称为 UART 的硬件(芯片内置)进行。这个硬件允许ATMEGA芯片接收串行通信,即使芯片在进行其他工作,只要有64个字节的串行缓冲器的储存空间即可。

使用软件的串口功能(因此称为“SoftwareSerial”,即“软串口”),现有的SoftwareSerial 库,以允许其他的Arduino数字引脚的串行通信,这可能有多个软件串口速度高达115200bps。一个参数使反转信号要求该协议的设备。

SoftwareSerial的版本包括Arduino 1.0,以及之后基于 Mikal Hart 的 NewSoftSerial library.

限制

库具有以下已知的限制:

  • 如果使用多个串口软件,一次只有一个软件可以接收数据。
  • 在 Mega 和 Mega 2560 上,不是所有的引脚都支持中断,允许用于RX的引脚包括:10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

例子

/*
  Software serial multple serial test
 
 从硬件串口接收,发送到软件的序列。
 软件串行接收,发送到硬件序列。
 
 * RX是数字引脚2(连接到其他设备的TX)
 * TX是数字引脚3(连接到其他设备的RX)
 
 */
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(2, 3); // RX, TX
 
void setup()  
{
  //打开串行通信,等待端口打开:
  Serial.begin(57600);
  while (!Serial) {
    ; // 等待串口连接。Needed for Leonardo only
  }
 
 
  Serial.println("Goodnight moon!");
 
  // 设置串口通讯的速率
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}
 
void loop() // 循环
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

函数

本页面的其他翻译:
arduino/libraries/softwareserial.txt · 最后更改: 2019/06/19 16:32 由 lzt