STM32
登录
直播中
李进锋
7年用户
918经验值
私信
关注
[问答]
怎样去使用USART(串口通信)呢
开启该帖子的消息推送
USART
串口通信
异步收发器
USART是指什么?USART与SART的区别在哪?怎样去使用USART(串口
通信
)呢?
回帖
(1)
段朝思
2021-12-8 14:29:33
STM32学习笔记—02—USART(串口通信)
2.USART功能框图介绍
USART是指通用同步异步收发器,是一个串行通信设备,可以进行全双工数据交换(同时进行数据发送和接受),与SART的区别在于:在USART的基础上裁剪了同步通信功能,只有异步通信。
2.1 功能介绍
TX:发送数据输出引脚
RX:接受数据输入引脚
SCLK:时钟,仅同步通信时使用
nRTS:请求发送(Request To Send)
nCTS:允许发送(Clear To Send)
后三者仅USART才有,UART不具备
应该注意的是UASRT1是挂在APB2高速时钟线上的,其他都是APB1低速时钟线上,配置的时候,开启时钟应该特别注意。
2.2数据寄存器(USART_DR)
USART_DR:只有9位有效,并且第 9 位数据是否有效要取决于USART_CR1的M位设置,当 M 位为 0 时表示 8 位数据字长,当 M位为1表示9位数据字长,我们一般使用 8 位数据字长。USART_DR包含一个发送数据寄存器TDR和一个接收数据寄存器RDR。一个地址对应了两个物理内存。TDR 和 RDR 都是介于系统总线和移位寄存器之间。串行通信是一个位一个位传输的,发送时把 TDR 内容转移到发送移位寄存器,然后把移位寄存器数据每一位发送出去,接收时把接收到的每一位顺序保存在接收移位寄存器内然后才转移到 RDR。
2.3控制器(USART_CRx:x=1~3):主要是CR1;CR2用于配置时钟(USART一般我们使用并行通信),CR3用于硬件流控制。
使用USART的流程:
①先向USART_CR1寄存器的UE位置1使能USART,UE 位用来开启供给给串口的时钟;
当
用作发送
时,数据从CPU或DMA中读取,放到发送数据寄存器TDR中,然后TDR把数据转移到发送移位寄存器,然后通过发送移位寄存器(8位数据)一位一位的通过TX发送出去。
②-1、USART_CR1寄存器的TE位置1,发送使能,启动数据发送
②-2、当发送数据寄存器TDR中的数据全部转移到发送移位寄存器时,USART_SR的TXE位置1表示数据已经被转移到发送移位寄存器,则CPU可以继续发送下一个数据,如果为0,表示数据还没有全部转移到发送移位寄存器,则CPU不能继续发送数据,但是TXE位置1不表示数据已经发送出去啦,只是代表数据全部发送给了发送移位寄存器。小结:USART_SR的TXE位监测发送数据寄存器TDR。当需要使用发送缓冲区中断时,可以配置USART_CR1的TXEIE(发送缓冲区中断使能)位。
②-3、发送移位寄存器中的数据发送完成才表示数据全部发送,此时USART_SR的TC位置1,表示数据发送完成。小结:USART_SR的TC位监测发送移位寄存器。当需要使用发送完成中断时,可以配置USART_CR1的TCIE(发送完成中断使能)位。
当
用作接收
时,数据通过RX从外部来,一位一位的接收,先放到接收移位寄存器,再转移到接受数据寄存器RDR中,然后读取到CPU或者DMA内部去。
③-1、USART_CR1寄存器的RE位置1,接收使能,并开始搜寻RX引脚上的起始位。
③-2、当数据转移到接受数据寄存器RDR时,USART_SR的RXNE位置1表示收到数据,CPU或者DMA可以过来读取数据。当需要使用接收完成中断时,可以配置USART_CR1的RXNEIE(接收完成中断使能)位。
2.4波特率
计算方法可以参考:STM32f10x中文参考手册的524页。
STM32学习笔记—02—USART(串口通信)
2.USART功能框图介绍
USART是指通用同步异步收发器,是一个串行通信设备,可以进行全双工数据交换(同时进行数据发送和接受),与SART的区别在于:在USART的基础上裁剪了同步通信功能,只有异步通信。
2.1 功能介绍
TX:发送数据输出引脚
RX:接受数据输入引脚
SCLK:时钟,仅同步通信时使用
nRTS:请求发送(Request To Send)
nCTS:允许发送(Clear To Send)
后三者仅USART才有,UART不具备
应该注意的是UASRT1是挂在APB2高速时钟线上的,其他都是APB1低速时钟线上,配置的时候,开启时钟应该特别注意。
2.2数据寄存器(USART_DR)
USART_DR:只有9位有效,并且第 9 位数据是否有效要取决于USART_CR1的M位设置,当 M 位为 0 时表示 8 位数据字长,当 M位为1表示9位数据字长,我们一般使用 8 位数据字长。USART_DR包含一个发送数据寄存器TDR和一个接收数据寄存器RDR。一个地址对应了两个物理内存。TDR 和 RDR 都是介于系统总线和移位寄存器之间。串行通信是一个位一个位传输的,发送时把 TDR 内容转移到发送移位寄存器,然后把移位寄存器数据每一位发送出去,接收时把接收到的每一位顺序保存在接收移位寄存器内然后才转移到 RDR。
2.3控制器(USART_CRx:x=1~3):主要是CR1;CR2用于配置时钟(USART一般我们使用并行通信),CR3用于硬件流控制。
使用USART的流程:
①先向USART_CR1寄存器的UE位置1使能USART,UE 位用来开启供给给串口的时钟;
当
用作发送
时,数据从CPU或DMA中读取,放到发送数据寄存器TDR中,然后TDR把数据转移到发送移位寄存器,然后通过发送移位寄存器(8位数据)一位一位的通过TX发送出去。
②-1、USART_CR1寄存器的TE位置1,发送使能,启动数据发送
②-2、当发送数据寄存器TDR中的数据全部转移到发送移位寄存器时,USART_SR的TXE位置1表示数据已经被转移到发送移位寄存器,则CPU可以继续发送下一个数据,如果为0,表示数据还没有全部转移到发送移位寄存器,则CPU不能继续发送数据,但是TXE位置1不表示数据已经发送出去啦,只是代表数据全部发送给了发送移位寄存器。小结:USART_SR的TXE位监测发送数据寄存器TDR。当需要使用发送缓冲区中断时,可以配置USART_CR1的TXEIE(发送缓冲区中断使能)位。
②-3、发送移位寄存器中的数据发送完成才表示数据全部发送,此时USART_SR的TC位置1,表示数据发送完成。小结:USART_SR的TC位监测发送移位寄存器。当需要使用发送完成中断时,可以配置USART_CR1的TCIE(发送完成中断使能)位。
当
用作接收
时,数据通过RX从外部来,一位一位的接收,先放到接收移位寄存器,再转移到接受数据寄存器RDR中,然后读取到CPU或者DMA内部去。
③-1、USART_CR1寄存器的RE位置1,接收使能,并开始搜寻RX引脚上的起始位。
③-2、当数据转移到接受数据寄存器RDR时,USART_SR的RXNE位置1表示收到数据,CPU或者DMA可以过来读取数据。当需要使用接收完成中断时,可以配置USART_CR1的RXNEIE(接收完成中断使能)位。
2.4波特率
计算方法可以参考:STM32f10x中文参考手册的524页。
举报
更多回帖
rotate(-90deg);
回复
相关问答
USART
串口通信
异步收发器
怎样
使用STM32CubeMX
去
配置
USART
串口
通信
呢
2021-12-10
915
STM32的
USART
串口
通信
该
怎样
去
实现
呢
2021-11-17
509
怎样
去
实现一种
USART
串口
通信
程序
呢
2022-02-18
686
怎样
去
使用UART
串口
重定向和
USART
串行
通信
呢
2021-12-06
1686
怎样
去
编写
串口
通信
USART
的程序?有哪些步骤
2021-12-09
2410
USART
串口
通信
该如何
去
使用
呢
2021-12-08
448
怎样
去
解决STM32
串口
通信
USART
1转
USART
2中出现的问题
2021-12-09
1451
如何使用STM32平台的
USART
串口
通信
功能
呢
2021-11-17
815
怎样
通过
串口
通信
去
配置STM32CubeMX
USART
2021-09-28
1075
怎样
去
分析
USART
串口
配置的相关代码
呢
2021-12-06
689
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分