单片机发论文 单片机STM32:HAL库-串口USART
大家好,今天给大家介绍单片机STM32:HAL库-串口USART,文章末尾附有本毕业设计的论文和源码的获取方式,可进群免费领取。
USART简介
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。
USART利用分数波特率发生器提供宽范围的波特率选择。
一个波特率寄存器(),12位的整数和4位小数
任何USART双向通信至少需要两个脚:
在起始位期间,TX脚处于低电平,在停止位期间处于高电平。
发送和接收由一共用的波特率发生器驱动,当发送器和接收器的使能位分别置位时,分别为其产生时钟。
当起始位为1位,数据位为8位,停止位为1位时:
发送(TX)器
配置步骤
串口数据发送过程:
将数据写入DR(一个字节的大小)中,DR会将数据复制到TDR中,TDR会将数据复制到发送移位寄存器中,从LSB(最低有效位)一位位发送到TX引脚上,实现数据的发送。
其中:
每发送完一个字节(发送数据寄存器TDR为空)TXE标志会被置位。
全部数据发送完毕后TC标志会被置位。
接收器
USART可以根据的M位接收8位或9位的数据字
在USART接收期间,数据的最低有效位首先从RX脚移进到接收数据寄存器中。
空闲符号
当一空闲帧被检测到时,其处理步骤和接收到普通数据帧一样,但如果位被设置将产生一个中断。
配置步骤
串口数据接收过程:
接收移位寄存器从RX引脚接收数据,从数据最低有效位开始(因为数据是先发送最低有效位)接收数据,当接收到一个字节的数据时,将数据复制到RDR寄存器和DR寄存器中,此时RXNE标志被置位,通过读取DR寄存器来获取接收的一个字节数据。
分数波特率
波特率寄存器(),12位的整数和4位小数
用12位二进制数表示整数部分,4位表示小数部分。
波特率计算公式
设置波特率位,fck = 36MHz,则 = 19.5
整数部分为19
