USART概述

1 USART概述

U-universal 通用的 S- synchronous 同步 A-asynchronous 异步 R-Receive 接收 T-transmit 发送
通用同步异步收发器(USART)是一个串行通信设备,通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,有别于USART,有一个UART,它是在USART基础上裁剪掉了同步通信功能,只有异步通信。

2 UART含义

1) 指一种通信方式,是异步串行通信,简称“串口通信”,很多器件之间都可以实现UART通信
2) 指MCU上用于实现这种通信的专用接口
STM32有一种特殊的外设USART/UART是用于实现这种通信的接口

举例:电话通信是一种通信方式,要想实现这种电话通信方式,必须要有一个电话/座机/手机,就是通信所需的接口
我们平时使用的串口通信都是UART
满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率。
它支持同步单向通信和半双工单线通信;还支持 LIN(局域互连网络)、智能卡协议与 IrDA(红外线数据协会)SIR ENDEC 规范,以及调制解调器操作 (CTS/RTS)。而且,它还支持多处理器通信。通过配置多个缓冲区使用 DMA 可实现高速数据通信

3 USART电平标准

STM32 电平标准:TTL电平标准
电脑端电平标准:USB电平标准
CH340是一个USB总线的转接芯片,可以实现USB转串口或者是USB转打印口
在串口方式下,CH340 提供常用的MODEM联络信号,CH340用于为计算机扩展一个异步串口,或者是将普通的串口设备直接升级为USB总线
在这里插入图片描述

4 USART数据帧

数据帧组成:起始位+数据位+校验位+停止位
1 起始位:告知接收方准备接收数据,0有效
2 数据位:可以被编程(5,6,7,8),一般选择8位
设置字长,字长可以被编程:数据位+校验位
在这里插入图片描述
3 校验位:奇偶校验 –》不用
4 停止位:可以被编程
在这里插入图片描述

5 USART库函数

1 USART初始化函数
函数原型 void USART_Init (USART_TypeDef *USARTx, USART_InitTypeDef *USART_InitStruct)
函数参数
参数1:USART_TypeDef *USARTx eg:USART1
参数2:USART_InitTypeDef *USART_InitStruct
函数功能
根据USART_InitStruct里面的成员参数初始化指定的USARTx

2 USART使能函数
函数原型 void USART_Cmd (USART_TypeDef *USARTx, FunctionalState NewState)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:FunctionalState NewState eg:ENABLE
函数功能
使能USART

3 清除标志位
函数原型 void USART_ClearFlag (USART_TypeDef *USARTx, uint16_t USART_FLAG)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:uint16_t USART_FLAG
函数功能 清除对应的标志位

4清除中断标志位
函数原型 void USART_ClearITPendingBit (USART_TypeDef *USARTx, uint16_t USART_IT)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:uint16_t USART_FLAG
函数功能 清除对应的中断标志位

5获取标志位状态
函数原型 FlagStatus
USART_GetFlagStatus (USART_TypeDef *USARTx, uint16_t USART_FLAG)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:uint16_t USART_FLAG USART的标志位
函数返回值 标志位状态 SET—1 RESET—0

6获取中断标志位状态
函数原型 ITStatus
USART_GetITStatus (USART_TypeDef *USARTx, uint16_t USART_IT)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:uint16_t USART_IT USART的中断标志位
函数返回值 标志位状态 SET—1 RESET—0

7发送数据
函数原型 void USART_SendData (USART_TypeDef *USARTx, uint16_t Data)
函数参数
参数一:USART_TypeDef *USARTx eg:USART1
参数二:uint16_t Data 要发送的数据
函数功能 USART发送数据

8接收数据
函数原型 uint16_t USART_ReceiveData (USART_TypeDef *USARTx)
函数参数 参数:USART_TypeDef *USARTx eg:USART
函数返回值 USART接收的数据

9引脚复用
函数原型 void GPIO_PinAFConfig (GPIO_TypeDef *GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
函数参数
参数一:GPIO_TypeDef *GPIOx 端口号 eg:GPIOA
参数二:uint16_t GPIO_PinSource 引脚eg: GPIO_PinSource9
参数三:uint8_t GPIO_AF 复用的具体外设eg:GPIO_AF_USART1
函数返回值 Void

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值