网络推广和网站推广平台,虹口网站开发培训课程,怎么用自己的电脑建设网站,网站建设合肥目录 简介
什么是UART#xff1f;
什么是USART#xff1f; 简介
USART#xff08;Universal Synchron /Asynchronous Receiver /Transmitter#xff09;通用同步/异步收发器 1、USART是STM32内部集成的硬件外设#xff0c;可根据数据寄存器的一个字节数据自动生成数据帧…目录 简介
什么是UART
什么是USART 简介
USARTUniversal Synchron /Asynchronous Receiver /Transmitter通用同步/异步收发器 1、USART是STM32内部集成的硬件外设可根据数据寄存器的一个字节数据自动生成数据帧时序从TX引脚发送出去也可以自动接收RX引脚的数据帧时许拼接为一个字节数据存放在数据寄存器里。
2、自带波特率发生器最高达4.5Mbit/s
3、可配置数据位长度8/9、停止位长度0.5/1/1.5/2
4、可选校验位无校验/奇校验/偶校验
5、支持同步模式、硬件流控制、DMA、智能卡、IrDA、LIN
6、STM32F103C8T6 USART资源USART1、USART2、USART3
什么是UART
我们经常会遇到串口 叫UART这少了个s就是异步收发器一般串口很少使用这个功能所以其实UART和USART使用起来也没有什么区别其实STM32的USART模式就是比UART多了个时钟输出它只支持时钟输出不支持时钟输入所以这个同步模式更多的是为了兼容别的协议或特殊用途而设计的并不支持两个USART之间进行同步通信所以我们学习串口主要还是异步通信。
什么是USART
USART是STM32内部集成的硬件外设可根据数据寄存器的一个字节数据自动生成数据帧时序从TX引脚发送出去也可以自动接收RX引脚的数据帧时许拼接为一个字节数据存放在数据寄存器里。 我们之前的串口协议主要就是如上图靠收发这样的、约定好的波形来进行通信的那USART外设就是串口通信的硬件支持电路
USART大体可以分为发送和接收两部分 发送部分就是将数据寄存器的一个字节数据自动转为协议规定的波形从TX引脚发出接收部分就是自动接收RX引脚的波形按照协议规定解码为一个字节数据存放在数据寄存器里 这就是USART电路的功能当我们配置好USART直接读写数据寄存器就能自动发送和接受数据了。
下一条自带波特率发生器这个波特率发生器就是用来配置波特率的 他其实就是一个分频器比如我们APB2总线给个72MHz的频率然后波特率发生器进行一个分频得到我们想要的波特率时钟 最后在这个时钟下进行收发就是我们指定的通信波特率。 可配置数据位长度8/9、停止位长度0.5/1/1.5/2这些就是stm32USART支持配置的参数了这个数据位长度就是我们前面的参数有8位和9位。 9位就是包含奇偶校验位的长度一般不需要奇偶校验位就是八位需要就是九位 就是在连续发送时停止位的长度决定了帧的间隔我们最常用的的就是1位停止位其他很少用。
下一点可选校验位有无校验、奇校验、偶校验、但我们比较常用的是无校验。
以上的自带波特率发生器、数据为长度、可选校验位都可以通过配置寄存器来完成使用库函数配置的话就更简单了直接给结构体赋值就行。 串口通信我们最常用的就是波特率 11520或 9600数据位8位停止位1位无校验。
下一条同步模式就是多了个时钟CLK的输出硬件流控制这个是比如A设备有个TX向B设备的RX发送数据A设备一直在发发的太快了B处理不过来如果没有硬件流控制那B就只能抛弃新数据或者覆盖原数据了如果有硬件流控制在硬件电路上就会多一根线 如果B没准备好接收就置高电平如果准备好了就置低电平A接收到了B反馈的准备信号就只会在B准备好的时候才发送数据然后B没准备好那数据就不会发送出去。
这就是硬件流控制可以防止B处理慢而导致数据丢失的问题
硬件流控制STM32也是有的不过我们一般不用
DMA是这个串口支持DMA进行数据转运 如果有大量的数据进行收发 可以使用DMA进行转运数据减轻CPU的负担。