STM32
登录
直播中
一曲作罢
9年用户
843经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信
关注
[问答]
UART异步通信的知识点汇总,错过绝对后悔
开启该帖子的消息推送
USART
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 = 72
1000
1000/(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 的值:
一、通信。
通信就是指微处理机与外设交换数据的过程。
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 = 72
1000
1000/(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 的值:
举报
更多回帖
rotate(-90deg);
回复
相关问答
USART
STM32端口复用与串口
通信得知识点
汇总
,
错过
绝对
后悔
2021-12-15
895
STM8
UART
初始化+printf的
知识点
汇总
,
错过
绝对
后悔
2021-12-16
720
同步
异步
收发器的基础
知识点
汇总
,
错过
绝对
后悔
2021-12-10
884
STM32 USART奇偶校验控制的
知识点
汇总
,
错过
绝对
后悔
2021-12-10
1287
串口
通信
的
知识点
汇总
,
错过
绝对
后悔
2021-12-13
1015
通用同步
异步
收发器USRAT的
知识点
汇总
,
错过
绝对
后悔
2021-12-09
1389
STM32单片机地址映射的
知识点
汇总
,
错过
绝对
后悔
2021-12-13
964
Stm32串口接收和发送数据的
知识点
汇总
,
错过
绝对
后悔
2021-12-09
1031
STM32的串口发送数据
知识点
汇总
,
错过
绝对
后悔
2021-12-16
914
IO口的
知识点
汇总
,
错过
绝对
后悔
2021-12-15
827
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分