17、江科大stm32视频学习笔记——USART串口协议和USART串口外设

目录

1、通信接口

2、 硬件电路

3、电平标准

4、串口参数及时序

5、USART简介

 6、USART工作

(1)写操作

(2)读操作

(3)帧头和帧尾的添加和除由电路自动执行

(4)硬件数据控制流

(5)中断输出控制(USART)

(6)波特率发生器

 7、USART基本结构

 8、数据帧

 9、波特率发生器


1、通信接口

通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统
通信协议:制定通信的规则,通信双方按照协议规则进行数据收发

 异步:需要双方约定一个频率

2、 硬件电路

简单双向串口通信有两根通信线(发送端 TX 和接收端 RX
TX RX 要交叉连接
当只需单向的数据传输时,可以只接一根通信线
当电平标准不一致时,需要加电平转换芯片

 

 两个设备之间的GND一定要接在一起,但是VCC可以各自接

3、电平标准

TTL 电平: +3.3V +5V 表示 1 0V 表示 0
RS232 电平: -3~-15V 表示 1 +3~+15V 表示 0
RS485 电平:两线压差 +2~+6V 表示 1 -2~-6V 表示 0 (差分信号)

4、串口参数及时序

波特率:串口通信的速率
速率的参数就是波特率,波特率就是每秒传输码元的个数,单位是码元/s(baud)
比特率:每秒传输的比特数,单位是bit/s,或者是bps
在二进制的情况下,一个码元及时一个bit,此时波特率等于比特率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷, 1 为高电平, 0 为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来
停止位:用于数据帧间隔,固定为高电平

  • 字节装载在数据帧中,数据帧由起始位、数据位、停止位组成
  • 数据位有8个,代表一个字节的8位置,可以在最右边加一个奇偶校验位,则数据位总共是9位。接收方在接收数据后,会验证数据位和校验位
  • 若规定发送的波特率是1000bps,表示1s要发1000位,每一位的时间就是1ms,发送方每隔1ms发送一位,接收方每隔1ms接受一位,决定了每隔多久发送一位
  • 空闲状态下,起始位为高电平,起始位给低电平,使其产生下降沿,表示数据帧要开始

5、USART简介

USART: 通用同步 / 异步收发器
USART STM32 内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从 TX 引脚发送出去,也可自动接收 RX 引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里.
自带波特率(一般设置为9600/115200)发生器,最高达 4.5Mbits/s
可配置数据位长度( 8/9 )、停止位长度( 0.5/1/1.5/2
可选校验位(无校验 / 奇校验 / 偶校验)
支持同步模式、硬件流控制、 DMA 、智能卡、 IrDA LIN
同步模式:多了个时钟CLK的输出
STM32F103C8T6 USART 资源: USART1(APB2总线上的设备) USART2(APB1) USART3(APB1)

 6、USART工作

(1)写操作

当数据移位完成后,数据会立刻自动从TDR发送移位寄存器

TDR和移位寄存器的双重缓存,保证在连续发送数据时,数据帧之间不会有空闲,提高了工作效率

(2)读操作

 因为串口协议规定是低位先行,所以接收移位寄存器时从高位往低位方向移动

(3)帧头和帧尾的添加和除由电路自动执行

(4)硬件数据控制流

A向B发送数据,当A一直发,B处理不过来;
若无硬件控制流,B只能抛弃新数据或者覆盖元数据;
有硬件控制流,硬件电路上会多出一条线,B没准备好置高电平,准备好置低电平;
A收到B的反馈决定数据发送,防止因为B处理慢而导致数据丢失。

 能接收的时候,RTS就置低电平,请求对方发送,对方的CTS接收到后,就可以一直发

处理不过来时,RTS就置高电平,对方的CTS接收到后,就会暂停发送

(5)中断输出控制(USART)

 TXE发送寄存器空,RXNE接收寄存器非空,是判断发送状态和接收状态的必要标志位
 中断输出控制就是配置中断是不是能通向NVIC

(6)波特率发生器

  

波特率发生器是分频器,APB时钟进行分频,得到发送和接收移位的时钟

时钟输入时fPCLKx(x=1或2),USART1挂载在APB2,所以就是PCLK2的时钟,为72M

其他的USART挂载在APB1,就是PCLK1的时钟,为36M

之后对时钟进行分频,除以USARTDIV的分频系数,分频后再除以16,得到发送器时钟和接收器时钟,通向控制部分

若TE=1,发送器使能,发送部分的波特率就有效

若RE=1,接收器使能,接收部分的波特率有效

 7、USART基本结构

 8、数据帧

 有8位字长和9位字长,分别可以选择有校验和无校验

 9位建议有校验,8位建议无校验

 停止位有0.5,1,1.5,2,建于选择1位

9、波特率发生器

发送器和接收器的波特率由波特率寄存器BRR里的DIV确定
计算公式:波特率 = fPCLK2/1 / (16 * DIV)//内部有16倍波特率的采样时钟 

配置USART1为9600的波特率
9600=72M(USART1的时钟)/(16*DIV)
DIV=72M/9600/16=468.75(二进制:11101 0100.11)
用库函数配置,需要多少波特率直接写就行

<think>好的,我现在需要帮助用户查找关于STM32USART框图的详细解释,特别是江科大相关的教学内容。首先,我需要回顾用户提供的引用内容,看看是否有相关的信息。 用户提到了三个引用:[1]、[2]、[3]。引用[1]主要讨论了USART串口异步通信及其应用实验设计,提到了UART与IrDA、LIN的关系。引用[2]指出STM32F103C8T6的USART资源分布,包括USART1、2、3的位置及总线连接,这可能涉及到时钟配置。引用[3]涉及NVIC中断控制器的管理,优先级设置等。虽然这些引用提供了USART的基本信息,但用户需要的是框图详解,特别是江科大的教学笔记,但现有引用中并没有直接提到江科大的资料。 接下来,我需要思考如何根据现有信息构建一个合理的回答,同时引导用户获取更详细的框图资料。首先,USART框图通常包括发送器、接收器、波特率发生器、控制逻辑等部分。结合引用[2]提到的USART模块挂载在APB总线上,时钟配置是关键点之一。此外,中断管理(引用[3])在USART的数据传输中也很重要,比如接收中断使能等。 用户可能需要了解每个功能模块的作用,比如数据寄存器的操作流程,如何配置波特率,以及如何使用中断来处理数据收发。同时,需要指出江科大的课程可能包含具体的实验设计或配置步骤,但当前引用中没有详细内容,因此建议用户参考课程提供的资料或联系相关人员。 另外,用户的问题中提到的“江科大笔记”可能是指苏科技大学的课程材料,但无法直接获取这些内部资料,所以需要引导用户查阅官方教材或实验指导书。同时,引用[1]中的实验设计可能包含部分框图应用实例,可以推荐用户查看。 最后,生成相关问题时要围绕USART的结构、配置步骤、中断应用以及与相关协议的关系展开,帮助用户深入理解。</think>### STM32 USART框图详解(基于公开资料整理) 根据引用[1][2][3]中的技术要点,结合USART标准框图分析如下: 一、USART核心模块组成 1. **时钟控制模块** - 波特率发生器连接APB总线(USART1在APB2,USART2/3在APB1)[^2] - 计算公式:$$ BR = \frac{f_{PCLK}}{16 \times USARTDIV} $$ - 需通过BRR寄存器配置分频系数 2. **数据收发通道** ```c // 典型数据操作流程 USART_SendData(USART1, data); // 写入TDR寄存器 while(!USART_GetFlagStatus(USART1, USART_FLAG_TXE)); // 等待发送完成 uint8_t recv = USART_ReceiveData(USART1); // 读取RDR寄存器 ``` 3. **控制逻辑单元** - CR1/CR2/CR3寄存器组配置工作模式 - 支持LIN总线同步间隔检测[^1] - 可配置DMA传输使能位 二、中断管理系统 通过引用[3]中NVIC模块实现: 1. 配置USART中断通道(如USART1_IRQn) 2. 设置中断优先级分组 3. 使能接收中断示例: ```c USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); NVIC_EnableIRQ(USART1_IRQn); ``` 三、典型应用连接 ``` +------------+ | STM32 | | | TX ------>| USART_RX | RX <------| USART_TX | | | +------------+ ``` (注:需外接电平转换芯片实现RS232通信)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值