Arduino - 通讯(Communication)

Arduino - 通讯(Communication) 首页 / Arduino入门教程 / Arduino - 通讯(Communication)

已经定义了数百种通信协议来实现此数据交换,每个协议可以分为两类之一:并行或串行。

并行通讯

Arduino和外围设备之间通过输入/输出端口的并行连接是距离短至几米的理想解决方案,但是,在其他情况下,如果需要在两个设备之间创建较长距离的通信,则无法使用并行连接,并行接口同时传输多个位。

并行通讯

串行类型

串行通信可以进一步分类为-

  • 同步  -  已同步的设备使用相同的时钟,并且它们的时序彼此同步。

  • 异步  -  异步设备具有自己的时钟,并由先前状态的输出触发。

如果为所有连接的设备提供相同的时钟,则它们是同步的,如果没有时钟线,则它是异步的。

异步串行协议具有许多内置规则,这些规则不过是有助于确保健壮且无错误的数据传输的机制。

链接:https://www.learnfk.comhttps://www.learnfk.com/arduino/arduino-communication.html

来源:LearnFk无涯教程网

  • 同步位(Synchronization bits)
  • 数据位(Data bits)
  • 奇偶校验位(Parity bits)
  • 波特率(Baud rate)

同步位

同步位是随每个数据包一起传送的两个或三个特殊位,它们是开始位和停止位,正如它们的名字一样,这些位分别标签数​​据包的开始和结束。

起始位始终由一条从1到0的空闲数据线表示,而停止位将通过将该行保持在1来转换回空闲状态。

同步位

数据位

每个数据包中的数据量可以设置为5到9位之间的任意大小,当然,标准数据大小是您的基本8位字节,但其他大小也有其用途。 7位数据包的效率可能高于8位,尤其是在您仅传输7位ASCII字符的情况下。

奇偶校验位

用户可以选择是否应该有奇偶校验位,如果是,则选择奇偶校验是奇数还是偶数,如果数据位中的1的位数为偶数,则奇偶校验位为0。奇偶校验正好相反

波特率

术语波特率用于表示每秒传输的位数[bps],请注意,它是指位,而不是字节,协议通常要求将每个字节与几个控制位一起传输。这意味着串行数据流中的一个字节可以包含11位。如果波特率是300 bps,则每秒最多可以传输37个字节和最少27个字节。

以下代码将使Arduino在启动时发送问候。

无涯教程网

void setup() {
   Serial.begin(9600); //将串口库波特率设置为 9600
   Serial.println("hello Learnfk"); //打印你好Learnfk
}

void loop() {

}

上传到Arduino之后,打开Arduino IDE右上角的串行监视器,在串行监视器的顶部框中键入任何内容,然后按发送或键盘上的回车键。这将向Arduino发送一系列字节。

以下代码将使Arduino根据提供的输入输出输出。

void setup() {
   Serial.begin(9600); //将串口库波特率设置为 9600
}

void loop() {
   if(Serial.available()) //如果可用于读取的字节数(字符) 
      Serial.print("I received:"); //我收到的打印件
      Serial.write(Serial.read()); //发送您阅读的内容
   }
}

请注意, Serial.print 和 Serial.println 将发回实际的ASCII码,而 Serial.write 将发回实际的文本。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

算法面试通关40讲 -〔覃超〕

重学前端 -〔程劭非(winter)〕

后端技术面试 38 讲 -〔李智慧〕

分布式系统案例课 -〔杨波〕

OAuth 2.0实战课 -〔王新栋〕

物联网开发实战 -〔郭朝斌〕

MySQL 必知必会 -〔朱晓峰〕

大型Android系统重构实战 -〔黄俊彬〕

手把手带你写一个MiniSpring -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)