打印
[其他ST产品]

【STM32】USART

[复制链接]
648|54
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
硬件基础
USART仅规定了协议层通信标准,物理层硬件可以根据通讯对象灵活选择。

1.USART主机接USART从机
这种情况不用进行任何转换,直接将信号线交叉连接,地线直接连接即可。



使用特权

评论回复
评论
发GV第几啊 2023-7-25 17:00 回复TA
———————————————— 版权声明:本文为CSDN博主「sunshine42.7」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_40130613/article/details/125438749 
沙发
发GV第几啊|  楼主 | 2023-7-25 16:33 | 只看该作者
USART主机接电脑USB
一般的单片机硬件设计都会预留一个USART连接电脑,用于在调试程序时可以将调试信息打印在电脑端的串口调试助手。
但单片机的USART无法直接与PC通讯,需要借助CH340或CP2102等芯片实现USB与USART的相互转化。

使用特权

评论回复
板凳
发GV第几啊|  楼主 | 2023-7-25 16:33 | 只看该作者
USART主机接RS232从机
单片机的USART无法直接与232设备通讯,需要借助MAX232等芯片实现232与USART的相互转化。

使用特权

评论回复
地板
发GV第几啊|  楼主 | 2023-7-25 16:34 | 只看该作者
USART主机接RS485从机
单片机的USART无法直接与485设备通讯,需要借助MAX485等芯片实现485与USART的相互转化。

使用特权

评论回复
5
发GV第几啊|  楼主 | 2023-7-25 16:34 | 只看该作者
功能框图

使用特权

评论回复
6
发GV第几啊|  楼主 | 2023-7-25 16:34 | 只看该作者
1.功能引脚
TX:数据发送
RX:数据接收
SW_RX:略
nRTS:硬件流控制,略
nCTS:硬件流控制,略
SCLK:仅适用于同步模式,略

使用特权

评论回复
7
发GV第几啊|  楼主 | 2023-7-25 16:34 | 只看该作者
2.数据寄存器
数据寄存器USART_DR只有低9位有效,并且第9位是否有效受CR1寄存器的M位控制,详见控制寄存器部分。

使用特权

评论回复
8
发GV第几啊|  楼主 | 2023-7-25 16:34 | 只看该作者
USART_DR实际包含两个寄存器,一个用于发送的TDR,一个用于接收的RDR。发送时往USART_DR写入数据会自动存入TDR,读取USART_DR会自动提取RDR的数据。

使用特权

评论回复
9
发GV第几啊|  楼主 | 2023-7-25 16:35 | 只看该作者
控制与状态寄存器
该部分寄存器囊括了USART接收发送的功能控制,收发状态监视,中断控制。

使用特权

评论回复
10
发GV第几啊|  楼主 | 2023-7-25 16:35 | 只看该作者
RE:接收使能
TE:发送使能
RXNEIE:接收缓冲区非空中断使能
TCIE:发送完成中断使能
PS:校验位(0:偶校验,1:奇校验)
PCE:校验控制使能
M:字长(0:8位,1:9位)
UE:USART使能

使用特权

评论回复
11
发GV第几啊|  楼主 | 2023-7-25 16:35 | 只看该作者

使用特权

评论回复
12
发GV第几啊|  楼主 | 2023-7-25 16:35 | 只看该作者
STOP:停止位
00:1个停止位;
01:0.5个停止位;
10:2个停止位;
11:1.5个停止位;

使用特权

评论回复
13
发GV第几啊|  楼主 | 2023-7-25 16:44 | 只看该作者

DMAT:DMA使能发送
DMAR:DMA使能接收

PE:校验错误
RXNE:读数据寄存器非空
TC:发送完成
TXE:发送数据寄存器空

使用特权

评论回复
14
发GV第几啊|  楼主 | 2023-7-25 16:44 | 只看该作者
TC与TXE的区别:数据从TDR发送到发送移位寄存器之后触发TXE置位,但数据还没有从TX引脚发送出去,只有数据从TX引脚发送出去之后,才算完成一次数据发送,触发TC置位。也就是说,TC相比TXE更进一步。

使用特权

评论回复
15
发GV第几啊|  楼主 | 2023-7-25 16:47 | 只看该作者
发送
第一步:一般设置数据位为8位,停止位为1位,无校验位;//M=0,STOP=00,PCE=0;

此时字符帧格式为“起始位+数据帧+停止位”。

注意:奇偶校验只能验错,不能验对,校验准确率在50%以下,故一般设置为无校验。

使用特权

评论回复
16
发GV第几啊|  楼主 | 2023-7-25 16:49 | 只看该作者
第二步:使能USART,使能TE,即可启动数据发送,发送顺序为低位在前,高位在后

举例:以发送字符’A’为例,其ASCII码为65,二进制为0100 0001,则发送次序为1000 0010。

使用特权

评论回复
17
发GV第几啊|  楼主 | 2023-7-25 16:49 | 只看该作者
第三步:发送数据过程中需要等待TC标志位1,当其置位时,表示传输完成,如果之前有设置TCIE为1,则在数据传输完成时产生中断。

使用特权

评论回复
18
发GV第几啊|  楼主 | 2023-7-25 16:49 | 只看该作者
接收
跟接收相似,使能RE 之后开始接收数据,接收完成后就把数据从移位寄存器移到RDR内,并把RXNE置位,如果之前将RXNEIE置位的话将触发中断。

使用特权

评论回复
19
发GV第几啊|  楼主 | 2023-7-25 16:50 | 只看该作者
波特比率寄存器
USART发送器和接收器使用相同的波特率,计算公式为:



其中fPCLK为USART时钟,以F1为例,USART1挂载在APB2总线上,时钟频率为72M,USART2挂载在APB1总线上,时钟频率为36M。

使用特权

评论回复
20
发GV第几啊|  楼主 | 2023-7-25 16:51 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

276

帖子

0

粉丝