- 同步通信和异步通信
通信,最少要有两个对象,一个收,一个发。根据数据通信是否同步,可分为同步通信和异步通信。
- 同步通信:
一般情况下同步通信是指通信双方根据同步信号进行通信的方式。比如通信双方有一个共同的时钟信号,通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。
- 异步通信:
是指数据传输速度匹配依赖于通信双方有自己独立的系统时钟,大家约定好通信速度。异步通信不需要同步信号,但也并不是说通信的过程不同步。
- 串行通信和并行通信的区别
串行通信:指的是同一时刻只能收或发一个bit位信息;因此只需要一根信号线,数据按位顺序传输。
优点:占用引脚资源少。 缺点:相对较慢。
并行通信:指的是同一时刻可以收或发多个bit位的信息,因此需要多信号线才行。各个数据位同时传输。
优点:速度快。 缺点:占用引脚资源多。
- 单工、半双工、全双工
单工:要么收,要么发,只能做接收设备或者发送设备,比如收音机。
半双工:可以收,可以发,但不能同时收发,比如对讲机。
全双工:可以在同一时刻既接收又发送,比如手机。
- 常见通信总结:
STM32的USART简介:
USART: Universal Synchronous Asynchronous Receiver and Transmitter 的缩写,即通用同步异步收发器,可以灵活地与外设进行全双工数据交换。
UART外设(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁掉了同步通信功能,只有异步通信。简单区分同步异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是UART。
USART在STM32应用最多的莫过于打印程序信息,一般在硬件设计时都会预留一个USART通信接口连接电脑,用于在调试程序时可以把一些调试信息打印在电脑端的串口助手上,从而了解程序是否正确、指出程序出错位置等。
串口电路连接:
波特率:
在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,既每秒传送的二进制位数,其单位为bps(bits per second)。它是衡量串行数据速度快慢的重要指标。
国际上规定一个标准的波特率系列: 110、300、600、1200、1800、2400、4800、9600、115200、14.4Kbps、19.2Kbps、……
例如:115200bps、指每秒传送115200位。通信双方必须设置同样的速率才能正常通信。
串口状态寄存器-USART_SR:
位 7 TXE:发送数据寄存器为空 (Transmit data register empty)
0:数据未传输到移位寄存器
1:数据传输到移位寄存器
位 6 TC:发送完成 (Transmission complete)
0:传送未完成
1:传送已完成
位 5 RXNE:读取数据寄存器不为空 (Read data register not empty)
0:未接收到数据
1:已准备好读取接收到的数据
数据寄存器 USART_DR