STM32F1xx HAL库中文版——USART篇

38	 HAL UART Generic Driver    	//HAL串口通用驱动

38.1 UART Firmware driver registers structures //串口固件驱动寄存器结构

38.1.1 UART_InitTypeDef
UART_InitTypeDef被定义在stm32f1xx_hal_uart.h头文件中
数据字段:
• uint32_t BaudRate 波特率
• uint32_t WordLength 字长
• uint32_t StopBits 停止位
• uint32_t Parity 奇偶校验位
• uint32_t Mode 模式
• uint32_t HwFlowCtl 硬件流控制
• uint32_t OverSampling 过采样

字段的文档:
• uint32_t UART_InitTypeDef::BaudRate
这个成员变量配置了串口通信的波特率,波特率的计算公式如下:
– IntegerDivider = ((PCLKx) / (16 * (huart->Init.BaudRate)))
– FractionalDivider = ((IntegerDivider - ((uint32_t) IntegerDivider)) * 16) + 0.5

• uint32_t UART_InitTypeDef::WordLength
指定在一个帧中传输或接收的数据位的数目。这个参数可以是UART_Word_Length的值

• uint32_t UART_InitTypeDef::StopBits
指定传输的停止位的数目,这个参数可以是USART_Stop_Bits的值

• uint32_t USART_InitTypeDef::Parity
指定奇偶校验模式。这个参数可以是USART_Parity的值
Note:
—当奇偶校验位被使能时,将计算出的奇偶校验插入到所传输数据的MSB位置(当字长设置为9位数据位时为第9位;当单词长度设置为8位数据时,为第8位)。

• uint32_t USART_InitTypeDef::Mode
指定是否启用或禁用接收或传输模式。此参数可以是USART_Mode的值

• uint32_t USART_InitTypeDef::CLKPolarity
指定串行时钟的稳定状态。这个参数可以是usart_clock_polar的值

• uint32_t USART_InitTypeDef::CLKPhase
指定进行位捕获的时钟转换,这个参数可以是USART_Clock_Phase的值

• uint32_t USART_InitTypeDef::CLKLastBit
指定最后传输数据位(MSB)对应的时钟脉冲是否必须在同步模式下输出到SCLK pin上。该参数可以是USART_Last_Bit的值

39.1.2 __USART_HandleTypeDef
__USART_HandleTypeDef被定义在stm32f1xx_hal_usart.h头文件中
数据字段:
• USART_TypeDef * Instance
• USART_InitTypeDef Init
• uint8_t * pTxBuffPtr
• uint16_t TxXferSize
• __IO uint16_t TxXferCount
• uint8_t * pRxBuffPtr
• uint16_t RxXferSize
• __IO uint16_t RxXferCount
• DMA_HandleTypeDef * hdmatx
• DMA_HandleTypeDef * hdmarx
• HAL_LockTypeDef Lock
• __IO HAL_USART_StateTypeDef State
• __IO uint32_t ErrorCode

字段的文档:
• USART_TypeDef* __USART_HandleTypeDef::Instance
USART寄存器基地址
• USART_InitTypeDef __USART_HandleTypeDef::Init
Usart通信参数
uint8_t* __USART_HandleTypeDef::pTxBuffPtr
指向Usart Tx发送传输缓冲区的指针
• uint16_t __USART_HandleTypeDef::TxXferSize
Usart Tx传输大小
• __IO uint16_t __USART_HandleTypeDef::TxXferCount
Usart Tx传输计数器
• uint8_t* __USART_HandleTypeDef::pRxBuffPtr
指向Usart Rx接收传输缓冲区的指针	
• uint16_t __USART_HandleTypeDef::RxXferSize
Usart Rx传输大小	
• __IO uint16_t __USART_HandleTypeDef::RxXferCount
Usart Rx传输计数器
• DMA_HandleTypeDef* __USART_HandleTypeDef::hdmatx
Usart Tx DMA句柄参数		//DMA是直接存储器访问的意思
• DMA_HandleTypeDef* __USART_HandleTypeDef::hdmarx
Usart Rx DMA句柄参数
• HAL_LockTypeDef __USART_HandleTypeDef::Lock
锁定对象
• __IO HAL_USART_StateTypeDef __USART_HandleTypeDef::State
Usart通信状态
• __IO uint32_t __USART_HandleTypeDef::ErrorCode
USART 错误的代码

39.2 USART Firmware driver API description //USART固件驱动的API描述
接下来的章节将列举USART库中的不同的函数

39.2.1 How to use this driver //如何使用这个驱动
USART的HAL驱动可以像下面示范的使用:
1. 先声明一个USART_HandleTypeDef结构体(eg. USART_HandleTypeDef husart).
2. 通过实现HAL_USART_MspInit() API来初始化USART低级资源
a) 使能USARTx接口时钟
b) USART引脚配置:
 使能USART GPIOS的时钟
 配置USART的引脚位可复用推挽输出
c) 如果你需要中断进程,就进行NVIC配置:(用到了这三个API:HAL_USART_Transmit_IT(), HAL_USART_Receive_IT()and HAL_USART_Tr
ansmitReceive_IT())
 配置USARTx的中断优先级
 使能NVIC USART IRQ句柄
d) 如果你需要使用DMA进程就进行DMA配置(用到了这三个API:HAL_USART_Transmit_DMA()HAL_USART_Receive_DMA() and HAL_USART_TransmitReceive_DMA())
 为发Tx/Rx通道声明一个DMA句柄结构
 使能DMAx接口时钟
 用需要的Tx/Rx参数配置已声明的DMA句柄结构
 配置发送/接收通道
 将初始化的DMA句柄关联到USART DMA Tx/Rx句柄。
 配置优先级,并为了在DMA Tx/Rx通道上进行传输完全中断使能NVIC
 配置USARTx中断优先级并使能NVIC USART IRQ句柄(用于DMA非循环模式下发送补全检测的最后一个字节)

	3. 在这个初始化过的husart结构体中对Baud Rate, Word Length, Stop Bit, Parity, Hardware flow control and Mode(Receiver/Transmitter)进行编程
	4. 通过调用HAL_USART_Init()初始化USART的寄存器

 这些API还是通过调用定制的HAL_USART_MspInit(&husart) API来配置低等级的硬件像GPIO, CLOCK, CORTEX…
 Note:特定的在发送和传输过程中的USART中断(传输完成中断,RXNE中断和错误中断)将用宏指令__HAL_USART_ENABLE_IT() and __HAL_USART_DISABLE_IT()进行处理
5. 三种操作模式在驱动内是可用的:

轮询式输入输出操作

 使用HAL_USART_Transmit()在阻塞模式中发送大量数据
 使用HAL_USART_Receive()在阻塞模式中接收大量数据

中断式输入输出操作
 使用HAL_USART_Transmit_IT()在阻塞模式中发送大量数据
 在传输结束时执行HAL_USART_TxHalfCpltCallback,用户可以通过定制函数指针HAL_USART_TxCpltCallback来添加自己的代码
 使用HAL_USART_Receive_IT()在非阻塞模式接收大量数据
 在接收端执行HAL_USART_RxCpltCallback函数,用户可以通过自定义函数指针HAL_USART_RxCpltCallback来添加自己的代码
 在传输错误的情况下,执行HAL_USART_ErrorCallback()函数,用户可以通过自定义函数指针HAL_USART_ErrorCallback来添加自己的代码

DMA模式输入输出操作

 使用HAL_USART_Transmit_DMA()在非阻塞模式(DMA)下发送大量数据
 在传输结束时执行HAL_USART_TxHalfCpltCallback,用户可以通过定制函数指针HAL_USART_TxHalfCpltCallback来添加自己的代码
 在传输结束时执行HAL_USART_TxCpltCallback,用户可以通过自定义函数指针HAL_USART_TxCpltCallback来添加自己的代码
 使用HAL_USART_Receive_DMA()以非阻塞模式(DMA)接收大量数据
 在接收端执行HAL_USART_RxHalfCpltCallback,用户可以通过自定义函数指针HAL_USART_RxHalfCpltCallback来添加自己的代码
 在传输的接收端执行HAL_USART_RxCpltCallback,用户可以通过定制函数指针HAL_USART_RxCpltCallback来添加自己的代码
 在传输错误的情况下,会执行HAL_USART_ErrorCallback()函数,用户可以通过自定义函数指针HAL_USART_ErrorCallback来添加自己的代码
 使用HAL_USART_DMAPause()暂停DMA传输
 使用HAL_USART_DMAResume()恢复DMA传输
 使用HAL_USART_DMAStop()停止DMA传输

串口HAL驱动宏命令列表

 __HAL_USART_ENABLE:使能USART
 __HAL_USART_DISABLE:失能USART
 __HAL_USART_GET_FLAG : 检查是否设置了指定的USART标志
 __HAL_USART_CLEAR_FLAG : 清除指定的USART挂起标志
 __HAL_USART_ENABLE_IT: 使能指定的USART中断
 __HAL_USART_DISABLE_IT: 失能指定的USART中断

39.2.2 Callback registration //回调注册
当编译定义USE_HAL_USART_REGISTER_CALLBACKS设置为1时,允许用户动态配置驱动程序回调。

使用函数@ref HAL_USART_RegisterCallback()来注册一个用户回调。函数@ref HAL_USART_RegisterCallback()允许注册以下回调:
 TxHalfCpltCallback: Tx半完成回调
 TxCpltCallback: Tx完成回调
 RxHalfCpltCallback: Rx半完成回调
 RxCpltCallback: Rx完成回调
 TxRxCpltCallback: TxRx完成回调
 ErrorCallback:错误回调
 AbortCpltCallback:中止完成回调
 MspInitCallback : USART MspInit
 MspDeInitCallback : USART MspDeInit

39.2.3 Initialization and Configuration functions //初始化和配置函数

HAL_USART_Init()函数遵循USART同步配置过程(有关这些过程的详细信息,请参阅参考手册(STM32F10Xxx MCUs的RM0008和用于STM32F10Xxx MCUs的RM0041)STM32F100xx单片机))。

这个章节包含了以下API:
 HAL_USART_Init
 HAL_USART_DeInit
 HAL_USART_MspInit
 HAL_USART_MspDeInit

39.2.4 IO操作函数
本小节提供了一组允许管理USART同步数据传输的函数。
USART只支持主模式:它不能接收或发送与输入时钟相关的数据(SCLK总是输出)。

  1. 传输方式有两种:
     阻塞模式:通信在轮询模式下执行。所有数据处理的HAL状态在完成传输后由相同的函数返回。
     非阻塞模式:通信通过中断或者DMA被执行,这些API返回了HAL的状态。当使用中断模式或者DMA IRQ,数据进程的结束将通过专用的USART IRQ显示
     HAL_USART_TxCpltCallback(),HAL_USART_RxCpltCallback()和HAL_USART_TxRxCpltCallback()将分别在发送或者接收进程结束时执行,当检测到通信错误时,将执行HAL_USART_ErrorCallback()

  2. 阻塞模式API是:
     HAL_USART_Transmit() 单工模式
     HAL_USART_Receive() 在全双工模式仅接收
     HAL_USART_TransmitReceive() 全双工模式

  3. 非阻塞模式带中断的API:
     HAL_USART_Transmit_IT() 单工模式
     HAL_USART_Receive_IT() 在全双工中仅接收
     HAL_USART_TransmitReceive_IT()全双工模式
     HAL_USART_IRQHandler()

  4. 带DMA的非阻塞模式函数是:
     HAL_USART_Transmit_DMA() 单工模式
     HAL_USART_Receive_DMA() 在全双工模式仅接收
     HAL_USART_TransmitReceive_DMA() 全双工模式
     HAL_USART_DMAPause()
     HAL_USART_DMAResume()
     HAL_USART_DMAStop()

  5. 在非阻塞模式下提供了一组完整的传输回调:
     HAL_USART_TxHalfCpltCallback()
     HAL_USART_TxCpltCallback()
     HAL_USART_RxHalfCpltCallback()
     HAL_USART_RxCpltCallback()
     HAL_USART_ErrorCallback()
     HAL_USART_TxRxCpltCallback()

  6. 非阻塞模式传输可以使用Abort API中止:
     HAL_USART_Abort()
     HAL_USART_Abort_IT()

  7. 对于基于中断的中止服务(HAL_USART_Abort_IT),提供一个完整的中止回调:
     HAL_USART_AbortCpltCallback()

  8. 在非阻塞模式传输中,可能发生的错误被分成了两类,错误这样解决:
     错误认为是可恢复和非阻塞的:传输可以直到最后,但是错误的严重性是由用户进行评估的,接收到的字符恢复并存放在Rx缓冲区,错误代码被设置允许用户确认错误类型

    这部分包含了以下API:
     HAL_USART_Transmit
     HAL_USART_Receive
     HAL_USART_TransmitReceive
     HAL_USART_Transmit_IT
     HAL_USART_Receive_IT
     HAL_USART_TransmitReceive_IT
     HAL_USART_Transmit_DMA
     HAL_USART_Receive_DMA
     HAL_USART_TransmitReceive_DMA
     HAL_USART_DMAPause
     HAL_USART_DMAResume
     HAL_USART_DMAStop
     HAL_USART_Abort
     HAL_USART_Abort_IT
     HAL_USART_IRQHandler
     HAL_USART_TxCpltCallback
     HAL_USART_TxHalfCpltCallback
     HAL_USART_RxCpltCallback
     HAL_USART_RxHalfCpltCallback
     HAL_USART_TxRxCpltCallback
     HAL_USART_ErrorCallback
     HAL_USART_AbortCpltCallback

39.2.5 Peripheral State and Errors functions //外围状态和错误函数

本小节提供了一组函数,允许返回USART通信过程的状态,返回在通信过程中的外围错误

 HAL_USART_GetState()可以有效地检查运行时USART外围的状态
 HAL_USART_GetError()可以检查出出现在运行过程中的错误

39.2.6 Detailed description functions //函数的详细描述

HAL_USART_Init

函数名:
HAL_StatusTypeDef HAL_USART_Init (USART_HandleTypeDef * husart)
函数描述:
通过USART_InitTypeDef中特定的参数初始化USART并且初始化相应的句柄
参数:
husart:是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
HAL:status

HAL_USART_DeInit

函数名:
HAL_StatusTypeDef HAL_USART_DeInit (USART_HandleTypeDef * husart)
函数描述:
反初始化USART外围设备
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
HAL:status

HAL_USART_MspInit

函数名:
void HAL_USART_MspInit (USART_HandleTypeDef * husart)
函数描述:
USART MSP Init.
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
None

HAL_USART_MspDeInit

函数名:
void HAL_USART_MspDeInit (USART_HandleTypeDef * husart)
函数描述:
USART MSP DeInit.
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
None

HAL_USART_Transmit

函数名:
HAL_StatusTypeDef HAL_USART_Transmit (USART_HandleTypeDef * husart, uint8_t * pTxData, uint16_t Size, uint32_t Timeout)
函数描述:
阻塞模式单工发送大量数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
Timeout: 超时持续时间
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量。

HAL_USART_Receive

函数名:
HAL_StatusTypeDef HAL_USART_Receive (USART_HandleTypeDef * husart, uint8_t * pRxData, uint16_t Size, uint32_t Timeout)
函数描述:
全双工在阻塞模式下接收大量数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
Timeout: 超时持续时间
返回值:
HAL: status
Notes:
为了接收同步数据,同时传输虚拟数据
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),接收到的数据被处理为u16的集合。在这种情况下,Size必须表示通过pRxData可用的u16的数量。

HAL_USART_TransmitReceive

函数名:
HAL_StatusTypeDef HAL_USART_TransmitReceive (USART_HandleTypeDef * husart, uint8_t * pTxData, uint8_t * pRxData, uint16_t Size, uint32_t Timeout)
函数描述:
全双工模式下发送和接收大量数据(阻塞模式)
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
Timeout: 超时持续时间
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据和接收的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData和pRxData可用的u16数量

HAL_USART_Transmit_IT

函数名:
HAL_StatusTypeDef HAL_USART_Transmit_IT (USART_HandleTypeDef * husart, uint8_t * pTxData, uint16_t Size)
函数描述:
非阻塞状态下单工发送数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量
USART错误无法避免溢出错误

HAL_USART_Receive_IT

函数名:
HAL_StatusTypeDef HAL_USART_Receive_IT (USART_HandleTypeDef * husart, uint8_t * pRxData, uint16_t Size)
函数描述:
非阻塞模式单工接收数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量

HAL_USART_TransmitReceive_IT

函数名:
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT (USART_HandleTypeDef * husart, uint8_t * pTxData, uint8_t * pRxData,
uint16_t Size)
函数描述:
全双工模式发送接收数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量

HAL_USART_Transmit_DMA

函数名:
HAL_StatusTypeDef HAL_USART_Transmit_DMA (USART_HandleTypeDef * husart, uint8_t * pTxData, uint16_t Size)
函数描述:
在DMA模式下单工发送大量数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
返回值:
HAL: status
Notes:
当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量

HAL_USART_Receive_DMA

函数名:
HAL_StatusTypeDef HAL_USART_Receive_DMA (USART_HandleTypeDef * husart, uint8_t * pRxData, uint16_t Size)
函数描述:
DMA模式全双工接受数据
参数:
husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
pTxData:指向数据缓冲区(u8或u16数据元素)的指针。
size:要发送的数据元素的数量(u8或u16)。
返回值:
HAL: status
Notes:
 当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData提供的u16的数量
 必须配置USART DMA传输通道,以便为从机生成时钟当启用USART奇偶校验(PCE = 1)时,接收到的数据包含奇偶校验位

HAL_USART_TransmitReceive_DMA

函数名:
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA (USART_HandleTypeDef * husart, uint8_t * pTxData, uint8_t * pRxData, uint16_t Size)
函数描述:
DMA模式下全双工接收发送数据
参数:
 husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
 pTxData:指向Tx数据缓冲区(u8或u16数据元素)的指针。
 pRxData:指向Rx数据缓冲区(u8或u16数据元素)的指针
 size:要发送的数据元素的数量(u8或u16)。
返回值:
 HAL: status
Notes:
 当UART奇偶校验不启用时(PCE = 0),并且字长被配置为9位(M1-M0 = 01),发送的数据和接收的数据被处理为u16的集合。在这种情况下,Size必须表示通过pTxData和pRxData可用的u16数量
 当启用USART奇偶校验(PCE = 1)时,接收到的数据包含奇偶校验位

HAL_USART_DMAPause

函数名:
HAL_StatusTypeDef HAL_USART_DMAPause (USART_HandleTypeDef * husart)
函数描述:
暂停DMA传输
参数:
 husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
 HAL: status

HAL_USART_DMAResume

函数名:
HAL_StatusTypeDef HAL_USART_DMAResume (USART_HandleTypeDef * husart)
函数描述:
恢复DMA传输
参数:
 husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
 HAL: status

HAL_USART_DMAStop

函数名:
HAL_StatusTypeDef HAL_USART_DMAStop (USART_HandleTypeDef * husart)
函数描述:
停止DMA传输
参数:
 husart: 是指向USART_HandleTypeDef结构体的指针包含了特定UART模块的配置信息
返回值:
 HAL: status

HAL_USART_ Abort

函数名:
HAL_StatusTypeDef HAL_USART_Abort (USART_HandleTypeDef * husart)
函数描述:
中止正在进行的传输(阻塞模式)
参数:
 husart: USART处理
返回值:
HAL: status

HAL_USART_Abort_IT

函数名:
HAL_StatusTypeDef HAL_USART_Abort_IT (USART_HandleTypeDef * husart)
函数描述:
中止正在进行的传输(中断模式)
参数:
 husart: USART处理
返回值:
HAL: status
Notes:
 此过程在中断模式下执行,这意味着只有在执行用户中止完成回调时(而不是在退出函数时),中止过程才被认为是完成的。

HAL_USART_IRQHandler

函数名:
void HAL_USART_IRQHandler (USART_HandleTypeDef * husart)
函数描述:
这个函数处理USART中断请求
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_TxCpltCallback

函数名:
void HAL_USART_TxCpltCallback (USART_HandleTypeDef * husart)
函数描述:
Tx传输完成的回调
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_TxHalfCpltCallback

函数名:
void HAL_USART_TxHalfCpltCallback (USART_HandleTypeDef * husart)
函数描述:
Tx半转移完成回调
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_TxHalfCpltCallback

函数名:
void HAL_USART_RxCpltCallback (USART_HandleTypeDef * husart)
函数描述:
Rx传输完成的回调
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_RxHalfCpltCallback

函数名:
void HAL_USART_RxHalfCpltCallback (USART_HandleTypeDef * husart)
函数描述:
Rx半转移完成回调
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_TxRxCpltCallback

函数名:
void HAL_USART_TxRxCpltCallback (USART_HandleTypeDef * husart)
函数描述:
Tx/Rx传输完成的回调非阻塞进程
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_ErrorCallback

函数名:
void HAL_USART_ErrorCallback (USART_HandleTypeDef * husart)
函数描述:
USART错误回调
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 None

HAL_USART_AbortCpltCallback

函数名:
void HAL_USART_AbortCpltCallback (USART_HandleTypeDef * husart)
函数描述:
终止完成回调
参数:
 husart: husart: USART handle
返回值:
 None

HAL_USART_GetState

函数名:
HAL_USART_StateTypeDef HAL_USART_GetState (USART_HandleTypeDef * husart)
函数描述:
返回USART状态
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
 HAL:state

HAL_USART_GetError

函数名:
uint32_t HAL_USART_GetError (USART_HandleTypeDef * husart)
函数描述:
返回USART错误代码
参数:
 husart: 指向一个USART_HandleTypeDef结构的指针,该结构包含指定USART模块的配置信息。
返回值:
USART:错误代码

39.3 USART Firmware driver defines //USART固件驱动定义
下一节列出了模块的各种定义和宏

USART Clock
  • USART_CLOCK_DISABLE
  • USART_CLOCK_ENABLE

USART Clock Phase
 USART_PHASE_1EDGE
 USART_PHASE_2EDGE

USART Clock Polarity
 USART_POLARITY_LOW
 USART_POLARITY_HIGH

USART Error Code
 HAL_USART_ERROR_NONE
 HAL_USART_ERROR_PE // Parity error奇偶校验位错误
 HAL_USART_ERROR_NE // Noise error噪声错误
 HAL_USART_ERROR_FE // Frame error帧错误
 HAL_USART_ERROR_ORE // Overrun error溢出错误
 HAL_USART_ERROR_DMA // DMA transfer error DMA传输错误

USART Flags
 USART_FLAG_TXE // Transmit data register empty flag
 USART_FLAG_TC //Transmission Complete flag
 USART_FLAG_RXNE // Receive data register not empty flag
 USART_FLAG_IDLE // Idle Line detection flag
 USART_FLAG_ORE // Overrun Error flag
 USART_FLAG_NE // Noise Error flag
 USART_FLAG_FE // Framing Error flag
 USART_FLAG_PE // Parity Error flag

USART Interrupts Definition

 USART_IT_PE
 USART_IT_TXE
 USART_IT_TC
 USART_IT_RXNE
 USART_IT_IDLE
 USART_IT_ERR

USART Last Bit
 USART_LASTBIT_DISABLE
 USART_LASTBIT_ENABLE

USART Mode
 USART_MODE_RX
 USART_MODE_TX
 USART_MODE_TX_RX

USART NACK State
 USART_NACK_ENABLE
 USART_NACK_DISABLE

USART Parity
 USART_PARITY_NONE
 USART_PARITY_EVEN //偶
 USART_PARITY_ODD //奇

USART Number of Stop Bits
 USART_STOPBITS_1
 USART_STOPBITS_0_5
 USART_STOPBITS_2
 USART_STOPBITS_1_5

USART Word Length

 USART_WORDLENGTH_8B
 USART_WORDLENGTH_9B

发布了3 篇原创文章 · 获赞 2 · 访问量 479

猜你喜欢

转载自blog.csdn.net/LSX312441548/article/details/105100849