stm32学习笔记-USART

本文详细介绍了STM32的USART通信配置,包括字符接收的步骤、多处理器通信及单线半双工通信模式。提供了USART1的配置示例代码,以及重定向标准输入输出到USART1的函数。
摘要由CSDN通过智能技术生成
      接口通过三个引脚与其他设备连接在一起(见图248)。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。 
RX:接收数据串行输。通过过采样技术来区别数据和噪音,从而恢复数据。 
TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。 
● 总线在发送或接收前应处于空闲状态 ● 一个起始位 
● 一个数据字(8或9位),最低有效位在前 
● 0.5,1.5,2个的停止位,由此表明数据帧的结束 
● 使用分数波特率发生器 —— 12位整数和4位小数的表示方法。 ● 一个状态寄存器(USART_SR) ● 数据寄存器(USART_DR) 
● 一个波特率寄存器(USART_BRR),12位的整数和4位小数 ● 一个智能卡模式下的保护时间寄存器(USART_GTPR) 
25.6517/754 

关于以上寄存器中每个位的具体定义,请参考寄存器描述第节:USART寄存器描述。

发送配置步骤: 
1. 通过在USART_CR1寄存器上置位UE位来激活USART 2. 编程USART_CR1的M位来定义字长。 3. 在USART_CR2中编程停止位的位数。 
4. 如果采用多缓冲器通信,配置USART_CR3中的DMA使能位(DMAT)。按多缓冲器通信中的描述配置DMA寄存器。 
5. 利用USART_BRR寄存器选择要求的波特率。 
6. 设置USART_CR1中的TE位,发送一个空闲帧作为第一次数据发送。 
7. 把要发送的数据写进USART_DR寄存器(此动作清除TXE位)。在只有一个缓冲器的情况下,对每个待发送的数据重复步骤7。 
8. 在USART_DR寄存器中写入最后一个数据字后,要等待TC=1,它表示最后一个数据帧的传输结束。当需要关闭USART或需要进入停机模式之前,需要确认传输结束,避免破坏最后一次传输。 
单字节通信 
清零TXE位总是通过对数据寄存器的写操作来完成的。TXE位由硬件来设置,它表明: ● 数据已经从TDR移送到移位寄存器,数据发送已经开始 ● TDR寄存器被清空 
● 下一个数据可以被写进USART_DR寄存器而不会覆盖先前的数据 如果TXEIE位被设置,此标志将产生一个中断。 
如果此时USART正在发送数据,对USART_DR寄存器的写操作把数据存进TDR寄存器,并在当前传输结束时把该数据复制进移位寄存器。 
如果此时USART没有在发送数据,处于空闲状态,对USART_DR寄存器的写操作直接把数据放进移位寄存器,数据传输开始,TXE位立即被置起。 
当一帧发送完成时(停止位发送后)并且设置了TXE位,TC位被置起,如果USART_CR1寄存器中的TCIE位被置起时,则会产生中断。

字符接收 
在USART接收期间,数据的最低有效位首先从RX脚移进。在此模式里,USART_DR寄存器包含的缓冲器位于内部总线和接收移位寄存器之间。 配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值