STM32
登录
直播中
李丹
7年用户
1423经验值
私信
关注
[问答]
同步异步收发器的基础知识点汇总,错过绝对后悔
开启该帖子的消息推送
异步收发器
同步异步收发器的基础知识点汇总,错过绝对后悔
回帖
(1)
李叱镡
2021-12-10 11:18:20
@[STM32系统学习——USART(同步异步收发器)]
1)通信方式
1.1)并行通信
传输原理:数据各个位同时传输。优点:速度快。缺点:占用引脚资源多。
1.2)串行通信
传输原理:数据按位顺序传输。优点:占用引脚资源少。缺点:速度相对较慢。
2) 数据发送方式
2.1)单工
即数据只能单方向传输,不能反向传输。
2.2)半双工
数据可以双向传输,但是同一时刻只允许数据在某一个方向上传输。
2.3)全双工
数据可以同时双向传输,但是它要求通信双方都有独立的发送和接收设备。
3) 通信方式引脚连接
•RXD:数据输入引脚。数据接受。
•TXD:数据发送引脚。
•数据发送。
•如果要进行单片机与单片机之间通信的话,需要将一块单片机的RXD与另一块单片机的TXD相连,可能还要加要给 RS232转换器 来设置电平。
4) UART异步通信方式特点
•全双工异步通信。
•分数波特率发生器系统,提供精确的波特率。
•发送和接受共用的可编程波特率,最高可达4.5Mbits/s
•可编程的数据字长度(8位或者9位);
•可配置的停止位(支持1或者2位停止位);
•可配置的使用DMA多缓冲器通信。
•单独的发送器和接收器使能位。
•检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志
•多个带标志的中断源。触发中断。
•其他:校验控制,四个错误检测标志。
5)参数定义
①起始位 ②数据位(8位或者9位) 9位是带奇偶校验位
③奇偶校验位(第9位)奇检验就是保证8位数据位中1的个数为基数个,如果1是基数个则检验位就为0,反之为1;偶检验就是保证8位数据位中1的个数为偶数个,如果1是偶数个则检验位就为0,反之为1;
④停止位(1,15,2位)⑤波特率设置
6)串口配置
6.1)串口时钟使能,GPIO时钟使能
6.2)串口复位
6.3)GPIO端口模式设置
6.4)串口参数初始化
6.5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
6.6)使能串口
6.7)编写中断处理函数
7)串口初始化
8)发送接收函数
9)串口状态
RXNE(读数据寄存器非空),当该位被置 1 的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将该位清零,也可以向该位写 0,直接清除。
TC(发送完成),当该位被置位的时候,表示 USART_DR 内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式: 1)读 USART_SR,写USART_DR。 2)直接向该位写 0。
@[STM32系统学习——USART(同步异步收发器)]
1)通信方式
1.1)并行通信
传输原理:数据各个位同时传输。优点:速度快。缺点:占用引脚资源多。
1.2)串行通信
传输原理:数据按位顺序传输。优点:占用引脚资源少。缺点:速度相对较慢。
2) 数据发送方式
2.1)单工
即数据只能单方向传输,不能反向传输。
2.2)半双工
数据可以双向传输,但是同一时刻只允许数据在某一个方向上传输。
2.3)全双工
数据可以同时双向传输,但是它要求通信双方都有独立的发送和接收设备。
3) 通信方式引脚连接
•RXD:数据输入引脚。数据接受。
•TXD:数据发送引脚。
•数据发送。
•如果要进行单片机与单片机之间通信的话,需要将一块单片机的RXD与另一块单片机的TXD相连,可能还要加要给 RS232转换器 来设置电平。
4) UART异步通信方式特点
•全双工异步通信。
•分数波特率发生器系统,提供精确的波特率。
•发送和接受共用的可编程波特率,最高可达4.5Mbits/s
•可编程的数据字长度(8位或者9位);
•可配置的停止位(支持1或者2位停止位);
•可配置的使用DMA多缓冲器通信。
•单独的发送器和接收器使能位。
•检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志
•多个带标志的中断源。触发中断。
•其他:校验控制,四个错误检测标志。
5)参数定义
①起始位 ②数据位(8位或者9位) 9位是带奇偶校验位
③奇偶校验位(第9位)奇检验就是保证8位数据位中1的个数为基数个,如果1是基数个则检验位就为0,反之为1;偶检验就是保证8位数据位中1的个数为偶数个,如果1是偶数个则检验位就为0,反之为1;
④停止位(1,15,2位)⑤波特率设置
6)串口配置
6.1)串口时钟使能,GPIO时钟使能
6.2)串口复位
6.3)GPIO端口模式设置
6.4)串口参数初始化
6.5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
6.6)使能串口
6.7)编写中断处理函数
7)串口初始化
8)发送接收函数
9)串口状态
RXNE(读数据寄存器非空),当该位被置 1 的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将该位清零,也可以向该位写 0,直接清除。
TC(发送完成),当该位被置位的时候,表示 USART_DR 内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式: 1)读 USART_SR,写USART_DR。 2)直接向该位写 0。
举报
更多回帖
rotate(-90deg);
回复
相关问答
异步收发器
通用
同步
异步
收发器
USRAT的
知识点
汇总
,
错过
绝对
后悔
2021-12-09
1469
UART
异步
通信的
知识点
汇总
,
错过
绝对
后悔
2021-12-10
923
STM32端口复用与串口通信得
知识点
汇总
,
错过
绝对
后悔
2021-12-15
949
Stm32串口接收和发送数据的
知识点
汇总
,
错过
绝对
后悔
2021-12-09
1086
STM32 USART奇偶校验控制的
知识点
汇总
,
错过
绝对
后悔
2021-12-10
1372
STM32 IIC和USART接口的
基础知识点
汇总
,
绝对
实用
2022-02-22
1445
STM8 UART初始化+printf的
知识点
汇总
,
错过
绝对
后悔
2021-12-16
764
IO口的
知识点
汇总
,
错过
绝对
后悔
2021-12-15
864
STM32单片机地址映射的
知识点
汇总
,
错过
绝对
后悔
2021-12-13
1002
nRF24L01+PA+LNA的
知识点
汇总
,
错过
绝对
后悔
2021-12-17
972
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分