STM32入门学习笔记之USART驱动实验(上)

发布时间:2024-09-19  

6.1 STM32串口简介

在之前的51单片机开发中已经详细地描述过串行通信协议,但是51中的串口有一个缺点,就是为了使用串口的波特率必须将晶振更换为11.0592MHz,如果采用12MHz晶振就会导致波特率误差太大,以致于串口无法正常收发,但是如果使用11.0592MHz晶振又会存在定时器计数误差(即定时器计数不准确),在STM32中很好地解决了这个问题,并且扩展了串口的应用。


STM32F103ZET6最多可提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持LIN、支持调制解调器操作、智能卡协议和IrDASIRENDEC规范、具有DMA等。STM32的USART模块结构框图如下图所示。

图片

我们可以从框图发现,STM32的波特率是低4位表示小数部分,高12位表示整数部分,这就是为什么STM32可以在不更换晶振的条件下使用串口通信。


6.2 相关寄存器

6.2.1 控制寄存器USART_CR1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-














15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- UE M WAKE PCE PS PEIE TXEIE TCIE RXNEIE IDLEIE TE RE RWU SBK

Bit 13:USART使能


0:USART分频器和输出被禁止


   1:USART模块使能

Bit 12:字长


0:一个起始位,8个数据位,n个停止位


   1:一个起始位,9个数据位,n个停止位

Bit 11:唤醒的方法


0:被空闲总线唤醒


   1:被地址标记唤醒

Bit 10:检验控制使能


0:禁止校验控制


   1:使能校验控制

Bit 9:校验选择


0:偶校验


   1:奇校验

Bit 8:PE中断使能


0:禁止产生中断


   1:当USART_SR中的PE为1时,产生USART中断

Bit 7:发送缓冲区空中断使能


0:禁止产生中断


   1:当USART_SR中的TXE为1时,产生USART中断

Bit 6:发送完成中断使能


0:禁止产生中断


   1:当USART_SR中的TC为1时,产生USART中断

Bit 5:接收缓冲区非空中断使能


0:禁止产生中断


   1:当USART_SR中的ORE或者RXNE为1时,产生USART中断

Bit 4:IDLE中断使能


0:禁止产生中断


   1:当USART_SR中的IDLE为1时,产生USART中断

Bit 3:发送使能


0:禁止发送


   1:使能发送

Bit 2:接收使能


0:禁止接收


   1:使能接收,并开始搜寻RX引脚上的起始位

Bit 1:接收唤醒


0:接收器处于正常工作模式;


   1:接收器处于静默模式

Bit 0:发送断开帧


0:没有发送断开字符


   1:将要发送断开字符


6.2.2 波特率寄存器USART_BRR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-














15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USARTDIV_Mantissa[11:0] USARTDIV_Fraction[3:0]













Bit 15~Bit 4:波特率整数部分

Bit 3~Bit 0:波特率小数部分

注:波特率的计算公式

图片

6.2.3 数据寄存器USART_DR

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
-














15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- DATA[8:0]














Bit 8~Bit 0:数据值


包含了发送或接收的数据。由于它是由两个寄存器组成的,一个给发送用TDR,一个给接收用RDR,该寄存器兼具读和写的功能。当USART_CR1中PCE位被置位进行发送时,写到MSB的值(根据数据的长度不同,MSB是第7位或者第8位)会被后来的校验位取代。当使能校验位进行接收时,读到的MSB位是接收到的校验位。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>