博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
usart学习笔记
阅读量:4159 次
发布时间:2019-05-26

本文共 1217 字,大约阅读时间需要 4 分钟。

usart通用同步/异步串行收发器。相对于普通uart而言它的功能更加强大。在stm32中集成了usart控制器,它不仅支持普通的异步串行通信(uart功能)同时还具有LAN总线功能(局域互联网功能)、IRDA(红外通信)和Smartcard(智能卡)功能。

异步通信数据格式:起始位,数据位(最低为5位最高为9位),奇偶校验位 ,停止位

相关硬件知识:

一般情况下,串口通信所采用的芯片为max3232芯片,作为收发的gpio管脚通过此芯片连接到串口接口DB9的针脚上,其中gpio_tx接第三针脚,gpio_rx接DB9的第2针脚。

这样的接线方式和pc机的串口接线方式相同。因此如果将stm32开发板与pc机的串口相连。需要使用交叉线。还有一种接线方式为gpio_tx接第二针脚,gpio_rx接第三针脚。这样在和pc的串口进行通信的时候就必须接直通串口线。

以上是stm32串口的硬件接口,从图上可以看出stm32的usart非常复杂,可以大致分为三个部分:波特率控制部分、收发控制部分、数据存储和转移部分。

1.波特率的控制:

波特率的控制是通过串口时钟源来控制的。通过控制改变串口时钟源就能够改变相应的波特率。因此这里设置了USART_BRR寄存器,该寄存器的功能就是用来设置串口时钟频率的分频值(USARTDIV),它有两部分组成分别为整数部分DIV_Mantissa和小数部分DIV_Franction。USARTDIV = DIV_Mantissa+(DIV_Fraction/16)。

在stm32系列单片机中USART1挂接在APB2上,因此它的时钟源为FPCLK2。USART2挂接在APB1上,它的时钟源为FPCLK1。串口时钟源通过USARTDIV分频后分别输出作为发送器时钟和收发器时钟。控制发送和接收的时序。

2.收发控制

收发控制部分是串口模块的重要的组成部分,包括3个控制寄存器分别为CR1, CR2 , CR3和一个状态寄存器SR。通过写控制参数到这三个控制寄存器可以改变串口的一些模式设置,例如,停止位,奇偶校验位,数据字长等一些重要通信参数。串口的一些状态则可以通过SR寄存器获取到。

3.数据存储和转移部分:

这部分包括数据寄存器TDR/RDR和移位寄存器。通过对收发控制部分的配置,这部分则按照配置好的参数进行工作。

数据发送:当有数据需要发送,内核或者DMA将内存中的数据写入到TDR寄存器,发送控制器将适时的将数据加载的移位寄存器中,当数据完全加载到移位寄存器时,然后通过串口线_tx将数据一位一位的发送出去。在数据从TDR转移到移位寄存器中时,会产生一个事件叫做TXE(数据寄存器已空事件)。当数据发送完毕的时候会产生发送完成事件TC。

数据接收:接收数据为发送数据的逆过程,数据一位一位的接收到移位寄存器中,在加载到RDR寄存器。然后通过内核或者DMA拷贝到内存。供应用程序使用。

转载地址:http://nejxi.baihongyu.com/

你可能感兴趣的文章
我的9年IT路
查看>>
任正非:让用户像用电一样享受云计算
查看>>
学习技术的几个境界
查看>>
计算机世界:免费的代价
查看>>
方兴东:中国网站十年
查看>>
2010年微软和谷歌十大战场:从桌面到浏览器
查看>>
服务器虚拟化的未来之路
查看>>
写给我们这些浮躁的系统工程师
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>
业余研究:关于腾讯与他的QQ帝国
查看>>
马云校长湖畔大学第三期讲义完整版
查看>>
iPhone为什么比Android好
查看>>
小程序的今天就是微信指数的明天
查看>>
从互联网到人工智能,BAT这七年来到底做了什么
查看>>
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>
从手Q与微信之争,看腾讯内在的真实矛盾与战略
查看>>
移动互联网的七宗败案
查看>>
互联网十大失败案
查看>>