您的位置 首页 电路

STM32学习笔记之USART

USART功能概述接口通过三个引脚与其他设备连接在一起(见图248)。任何USART双向通信至少需要两个脚:接收数据输入(RX)和发送数据输出(TX)。R

USART功用概述

接口经过三个引脚与其他设备衔接在一起(见图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)
关于以上寄存器中每个位的详细界说,请参阅寄存器描绘第节:USART寄存器描绘。
在同步形式中需求下列引脚:
● CK:发送器时钟输出。此引脚输出用于同步传输的 时钟, (在Start位和Stop位上没有时钟脉冲,软件可选地,能够在最终一个数据位送出一个时钟脉冲)。数据能够在RX上同步被接纳。这能够用来操控带有移位寄存器的外部设备(例如LCD驱动器)。时钟相位和极性都是软件可编程的。在智能卡形式里,CK能够为智能卡供给时钟。
在IrDA形式里需求下列引脚:
● IrDA_RDI: IrDA形式下的数据输入。
● IrDA_TDO: IrDA形式下的数据输出。
下列引脚在硬件流控形式中需求:
● nCTS: 铲除发送,若是高电平,在当时数据传输完毕时阻断下一次的数据发送。
void USART_SendChar(USART_TypeDef* USARTx, uint16_t Data)
{
//检测参数
assert_param(IS_USART_ALL_PERIPH(USARTx));
assert_param(IS_USART_DATA(Data));
USARTx->DR = (Data & (uint16_t)0x01FF);
while(!(USARTx->SR & USART_SR_TC));
}
void USART_SendString(USART_TypeDef* USARTx, uint8_t *pString)
{
while(*pString)
{
USART_SendChar(USARTx, *pString++);
}
PS: 在非中止情况下,要经过检测SR位来判别是否发送完结:while(!(USARTx->SR & USART_SR_TC));
中止情况下: if(USART_GetITStatus(USARTy, USART_IT_TXE) != RESET)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/258041.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部