STM32
直播中

一曲作罢

9年用户 843经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

UART异步通信的知识点汇总,错过绝对后悔


UART异步通信的知识点汇总,错过绝对后悔

回帖(1)

袁声瑜

2021-12-10 10:48:37
一、通信。

通信就是指微处理机与外设交换数据的过程。
1.1 通信基本方式:

方式一:并行通信(多车道,多窗口)。

数据的各数位同时传输。
方式二:串行通信(单车道,单窗口)。

数据按位一位位的传输。
串行通信种类:

种类一:单工。

只允许一方发给另一方。





种类二:半双工。(对讲机)

双方可以相互通信,但是不能同时发送、同时接收。





种类三:全双工。

双方可以同时相互通信。





1.2 串行通信的标准:






1.3 同步通信与异步通信。

同步通信需要相同频率的时钟,逐字符发送接收,发一个收一个,收一个发一个,不能有间隙。
异步通信可以任意间隙,接受端随时准备,发送端任意时刻发送 ,需要加停止位和开始位。
UART异步通信 全双工 2线 RX TX
I2C 同步通信 半双工 2线 SDA SCL
SPI 同步通信 全双工 3线或四线 MOSI MISO SCLK SS(片选)
二、UART 异步通信

2.1 异步通信协议:

异步通信协议需要定义5个方面的内容:
1、起始位。
2、数据位。
3、奇偶校验位。
4、停止位。
5、波特率(通信速度,因为通信双方没有时钟)。





2.2 异步通信应用场合:



  • 芯片间的近距离通信。





  • 与PC机的通信。





  • 模块之间的远距离通信。





    用较高的电压差表示逻辑“0”、“1”

2.3 stm32f10x USART框图、引脚











2.4 stm32f10x波特率的计算

设波特率位9600,根据公式





9600 = 7210001000/(16*U)
分频值U = 72 * 1000 * 1000/(9600 * 16) = 468.75
DIV_Mantissa = 468 = 0x1d4;
DIV_Fraction = 16 * 0.75 = 12 = 0x0C
2.5 相关寄存器(了解)




  • USART_SR状态寄存器





    位7 TXE:发送数据寄存器空 (Transmit data register empty)
    当TDR寄存器中的数据被硬件转移到移位寄存器的时候,该位被硬件置位。
  • USART_DR数据寄存器









  • USART_BRR波特率寄存器





    波特率的计算方法由此得出
  • USART_CR1 控制寄存器










    主要用来使能

2.6 USART库函数:






USART_init配置串口:










USART_Cmd使能串口:





USART_GetFlagStatus判断标志位:





RESET 和 SET 的值:


举报

更多回帖

发帖
×
20
完善资料,
赚取积分