欢迎来到天天文库
浏览记录
ID:19359858
大小:51.00 KB
页数:7页
时间:2018-10-01
《stm32 uart整理说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、STM32UART整理说明该接口通过3个引脚连接到另外的外部设备上。任何USART双向通信都至少需要两个引脚:接收数据输入RX和发送数据输出TX当发送器禁能时输出引脚恢复到I/O端口配置。当发送器使能时且无数据发送,TX引脚为高电平。字长可以通过设置USART_CR1寄存器中的M位来选择是8位还是9位TX引脚在起始位期间为低,停止位期间为高空闲符被认为是一个全“1”的帧,其后紧跟着包含数据的下一个帧的起始位(“1”的数目包含了停止位的数目)间隙符被认为是一个帧周期都接收到“0”。在间隙帧之后,发送器插入1个或者2个的停止位(逻辑“1”)来应答起始位发送器发送器可以发送8或者9位
2、的数据字,这取决于M位的状态。相关时钟脉冲在SCLK引脚输出1、字符发送USART发送期间,TX引脚先出现最低有效位。这种模式下,USART_DR寄存器包含了一个内部总线和发送移位寄存器之间的缓冲区TDR。每个字符之前都有一位逻辑低电平的起始位,以可设置数目的停止位结束。TE位使能之后将发送一个空闲帧2、可配置的停止位1个停止位:这是陌生人的停止位数目2个停止位:常规USART,单线和调制解调器模式下支持0.5个停止位:当处于智能卡模式下接收数据时使用1.5个停止位:当处于智能卡模式下发送数据时使用空闲帧的发送包含了停止位。间隙帧是10(11)个低位之后跟着配置的停止位配置流程
3、:通过把USART_CR1寄存器中的UE位写1来使能USART->配置USART_CR1寄存器中的M位来定义字长->配置USART_CR2寄存器中的停止位数目->若采用多缓冲通信选择USART_CR3寄存器中的DMA使能位(DMAT),按照多缓冲通信中解释的配置DMA寄存器->设置USART_CR1寄存器中的TE位来发送一个空闲帧来作为第一次发送->通过USART_BRR寄存器选择期望的波特率->往USART_DR寄存器中写入要发送的数据,这也将清除TXE位。3、单字节通信清除TXE位一般都是通过往数据寄存器中写入数据完成的TXE是由硬件设置的,它表明:数据已经从TDR中转移到
4、移位寄存器了,数据发送已经开始;TDR寄存器是空的;下一个数据可以写入USART_DR寄存器,而不会覆盖前面的数据当发送在进行时,一个对USART_DR寄存器的写命令将数据保存到TDR寄存器中,并且当前传输完成之后,TDR寄存器中的数据将被复制到移位寄存器中。当没有进行发送时,往USART_DR寄存器中写入一个数据,数据将直接被放入移位寄存器,发送开始,TXE位将被立即置1当一个帧发送完成时(结束位之后),TC位被置1清除TC位是通过下面的软件操作完成的:(1)读一次USART_SR寄存器(2)写一次USART_DR寄存器(TC位也可以通过对它写0清除,这个清除序列只建议在多缓
5、存通信中使用)4、间隙字符设置SBK位将发送一个间隙字符。若SBK位被置1,在完成当前的发送之后将在TX线路上发送一个间隙字符。这一位在间隙字符发送完成时由硬件复位。USART在最后一个间隙帧的末端插入一个逻辑1,从而保证下一个帧的起始位能被识别软件在间隙符发送之前复位SBK,间隙符将不会被发送5、空闲符设置TE位将驱动USART在第一个数据帧之前发送一个空闲帧接收器接收器可以接收8位或9位的数据字,这取决于USART_CR1寄存器中的M位1、字符接收在一次USART接收期间,RX引脚最先接收到最低有效位。这种模式下,USART_DR寄存器由一个内部总线和接收移位寄存器之间的缓
6、冲区(RDR)构成配置流程:通过把USART_CR1寄存器中的UE位写1来使能USART->配置USART_CR1寄存器中的M位来定义字长->配置USART_CR2寄存器中的停止位数目->若发生多缓冲通信,选择USART_CR3寄存器中的DMA使能位(DMAT)->通过波特率寄存器USART_BRR来选择期望的波特率->置位USART_CR1寄存器中的RE,这将使能接收器开始寻找起始位。当接收到一个字符时:RXNE位被置1,表明移位寄存器的内容被转移到RDR如果RXNEIE位被置1,将产生一个中断接收期间若发现帧错误,噪音或者溢出错误错误标志将会被置1多缓冲接收中,RXNE在每
7、接收到一个字节都会被置1并通过DMA读取数据寄存器来清除在单缓冲模式,清除RXNE位是由软件读取USART_DR寄存器万层。RXNE标志也可以通过对它写0清除。RXNE位必须在下一个字符接收完成前被清除,否则将产生溢出错误2、间隙符:当接收到间隙符时,USART把它当做帧错误处理3、空闲符:当接收到空闲帧时,将和接收到数据一样处理,此外如果IDLEIE位被置1的话将产生一个中断4、溢出错误当接收到一个字符,而RXNE位还没有被复位,这时候将出现错误。在RXNE位被清除之前数据不能从移位寄存器
此文档下载收益归作者所有