//HAL-STM32-UART
//结束UART外围设备上正在进行的TX传输(在错误检测或传输完成之后)
static void UART_EndTxTransfer();
//结束UART外围设备上正在进行的RX传输(在错误检测或涮菜完成之后)
static void UART_EndRxTransfer();
//DMA UART传输过程完成回调
static void UART_DMATransmitCplt();
//DMA UART接收进程完成回调
static void UART_DMAReceiveCplt();
//DMA UART传输TX过程过半完成回调
static void UART_DMATxHalfCplt();
//DMA UART传输RX过程过半完成回调
static void UART_DMARxHalfCplt();
//DMA UART通讯错误回调
static void UART_DMAError();
//DMA UART通信中止回调,当HAL服务在错误时启用(在发送错误后DMA中止过程结束时调用)
static void UART_DMAAbortOnError();
//DMA UART TX通讯中止回调,在用户中止请求后DMA TX中止过程结束时调用
static void UART_DMATxAbortCallback();
//DMA UART RX通讯中止回调,在用户中止请求后DMA TX中止过程结束时调用
static void UART_DMARxAbortCallback();
//DMA UART TX通讯中止回调,仅中止TX传输
static void UART_DMATxOnlyAbortCallback();
//DMA UART RX通讯中止回调,仅中止RX传输
static void UART_DMARxOnlyAbortCallback();
//以非阻塞模式发送大量数据
static HAL_StatusTypeDef UART_Transmit_IT();
//以非阻塞模式包裹传输
static HAL_StatusTypeDef UART_EndTransmit_IT();
//在非阻塞模式下接收大量数据
static HAL_StatusTypeDef UART_Receive_IT();
//此函数处理UART通讯超时,它一直等待,直到某个标志不再处于指定状态
static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout();
//配置UART外围设备
static void UART_SetConfig();
//UART注册用户回调
HAL_UART_RegisterCallback();
TxHalfCpltCallback:Tx半完成回调
TxCpltCallback:Tx完整回调
RxHalfCpltCallback:Rx半完全回调
RxCpltCallback:Rx完整回调
ErrorCallback:错误回调
AbortCpltCallback:中止完整回调
AbortTransmitCpltCallback:中止传输完成回调
AbortReceiveCpltCallback:中止接收完整回调
HAL_UART_UnRegisterCallback():将回调重置为默认值
在阻塞模式下接收一定数量的数据,直到接收到预期数量的数据或发生IDLE事件
HAL_UARTEx_ReceiveToIdle():
在中断模式下接收一定数量的数据,直到接收到预期数量的数据或发生IDLE事件。
HAL_UARTEx_ReceiveToIdle_IT()
根据UART_InitTypeDef中指定的参数初始化UART模式,并创建关联的句柄。
HAL_StatusTypeDef HAL_UART_Init();
根据UART_InitTypeDef中指定的参数初始化半双工模式,并创建关联的句柄。
HAL_StatusTypeDef HAL_HalfDuplex_Init();
根据UART_InitTypeDef中指定的参数初始化LIN模式,并创建关联的句柄
HAL_StatusTypeDef HAL_LIN_Init();
根据UART_InitTypeDef中指定的参数初始化多处理器模式,并创建关联的句柄
HAL_StatusTypeDef HAL_MultiProcessor_Init();
取消初始化UART外围设备。
HAL_StatusTypeDef HAL_UART_DeInit();
void HAL_UART_MspInit();
void HAL_UART_MspDeInit();
以阻塞模式发送大量数据
HAL_StatusTypeDef HAL_UART_Transmit();
在阻塞模式下接收大量数据
HAL_StatusTypeDef HAL_UART_Receive();
以非阻塞模式发送大量数据
HAL_StatusTypeDef HAL_UART_Transmit_IT();
在非阻塞模式下接收大量数据
HAL_StatusTypeDef HAL_UART_Receive_IT();
以DMA模式发送大量数据
HAL_StatusTypeDef HAL_UART_Transmit_DMA();
在DMA模式下接收大量数据
HAL_StatusTypeDef HAL_UART_Receive_DMA();
暂停DMA传输
HAL_StatusTypeDef HAL_UART_DMAPause();
恢复DMA传输
HAL_StatusTypeDef HAL_UART_DMAResume();
停止DMA传输
HAL_StatusTypeDef HAL_UART_DMAStop();
在阻塞模式下接收一定数量的数据,直到接收到预期数量的数据或发生IDLE事件
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle();
在中断模式下接收一定数量的数据,直到接收到预期数量的数据或发生IDLE事件
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT();
在DMA模式下接收一定数量的数据,直到接收到预期数量的数据或发生IDLE事件
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA();
中止正在进行的传输(阻塞模式)
HAL_StatusTypeDef HAL_UART_Abort();
中止正在进行的传输传输(阻塞模式)。
HAL_StatusTypeDef HAL_UART_AbortTransmit();
中止正在进行的接收传输(阻塞模式)
HAL_StatusTypeDef HAL_UART_AbortReceive();
中止正在进行的传输(中断模式)
HAL_StatusTypeDef HAL_UART_Abort_IT();
中止正在进行的传输传输(中断模式)
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT();
中止正在进行的接收传输(中断模式)
HAL_StatusTypeDef HAL_UART_AbortReceive_IT();
此功能处理UART中断请求。
void HAL_UART_IRQHandler();
Tx传输完成回调
void HAL_UART_TxCpltCallback();
Tx半传输已完成回调
void HAL_UART_TxHalfCpltCallback();
Rx Transfer已完成回调
void HAL_UART_RxCpltCallback();
Rx半传输已完成回调
void HAL_UART_RxHalfCpltCallback();
UART错误回调
void HAL_UART_ErrorCallback();
UART中止完成回调
void HAL_UART_AbortCpltCallback();
UART中止完成回调。
void HAL_UART_AbortTransmitCpltCallback();
UART中止接收完成回调
void HAL_UART_AbortReceiveCpltCallback();
接收事件回调(使用高级接收服务后调用的Rx事件通知)
void HAL_UARTEx_RxEventCallback();
传输中断字符。
HAL_StatusTypeDef HAL_LIN_SendBreak();
在静音模式下进入UART。
HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode();
退出UART静音模式:唤醒软件。
HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode();
启用UART发射器并禁用UART接收器。
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter();
启用UART接收器并禁用UART发射器。
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver);
在中断模式下启动接收操作。
HAL_StatusTypeDef UART_Start_Receive_IT();
在DMA模式下启动接收操作。
HAL_StatusTypeDef UART_Start_Receive_DMA();
刷新UART DR寄存器
#define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__)
检查是否设置了指定的UART标志。
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__)
清除指定的UART挂起标志。
#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__)
清除UART PE挂起标志。
#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
清除UART FE挂起标志。
#define __HAL_UART_CLEAR_FEFLAG(__HANDLE__)
清除UART NE挂起标志
#define __HAL_UART_CLEAR_NEFLAG(__HANDLE__)
清除UART ORE挂起标志
#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__)
清除UART IDLE挂起标志
#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__)
启用指定的UART中断
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
禁用指定的UART中断。
#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
检查指定的UART中断源是否已启用。
#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__)
启用CTS流量控制
#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__)
禁用CTS流量控制
#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__)
启用RTS流量控制
#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__)
禁用RTS流量控制
#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__)
启用UART的一位采样方法的宏
#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__)
宏禁用UART的一位采样方法
#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__)
启用UART
#define __HAL_UART_ENABLE(__HANDLE__)
禁用UART
#define __HAL_UART_DISABLE(__HANDLE__)
UART_FLAG_CTS:CTS更改标志(不适用于UART4和UART5)
UART_FLAG_LBD:LIN中断检测标志
UART_FLAG_TXE:传输数据寄存器空标志
UART_FLAG_TC:传输完成标志
UART_FLAG_RXNE:接收数据寄存器非空标志
UART_FLAG_IDLE:空闲线路检测标志
UART_FLAG_ORE:溢出错误标志
UART_FLAG_NE:噪声错误标志
UART_FLAG_FE:帧错误标志
UART_FLAG_PE:奇偶校验错误标志
UART_FLAG_LBD:LIN中断检测标志
UART_FLAG_TC:传输完成标志
UART_FLAG_RXNE:接收数据寄存器非空标志
UART_IT_CTS:CTS更改中断
UART_IT_LBD:LIN中断检测中断
UART_IT_TXE:传输数据寄存器空中断
UART_IT_TC:传输完全中断
UART_IT_RXNE:接收数据寄存器非空中断
UART_IT_IDLE:空闲线路检测中断
UART_IT_PE:奇偶校验错误中断
UART_IT_ERR:错误中断(帧错误、噪声错误、溢出错误)
#define UART_CLEAR_PEF 奇偶校验错误清除标志
#define UART_CLEAR_FEF 帧错误清除标志
#define UART_CLEAR_NEF 检测到噪声错误清除标志
#define UART_CLEAR_OREF 超限错误清除标志
#define UART_CLEAR_IDLEF 检测到IDLE行清除标志
#define UART_CLEAR_TCF 变速箱完成清除标志
#define UART_CLEAR_LBDF LIN中断检测清除标志
#define UART_CLEAR_CTSF CTS中断清除标志
#define UART_CLEAR_CMF 字符匹配清除标志
#define UART_CLEAR_WUF 从停止模式唤醒清除标志
#define UART_CLEAR_RTOF UART接收器超时清除标志
#define UART_FLAG_REACK UART接收启用确认标志
#define UART_FLAG_TEACK UART发送启用确认标志
#define UART_FLAG_WUF UART从停止模式唤醒标志
#define UART_FLAG_RWU UART接收器从静音模式唤醒标志
#define UART_FLAG_SBKF UART发送中断标志
#define UART_FLAG_CMF UART字符匹配标志
#define UART_FLAG_BUSY UART忙标志
#define UART_FLAG_ABRF UART自动波特率标志
#define UART_FLAG_ABRE UART自动波特率错误
#define UART_FLAG_RTOF UART接收器超时标志
#define UART_FLAG_CTS UART清除发送标志
#define UART_FLAG_CTSIF UART清除发送中断标志
#define UART_FLAG_LBDF UART LIN中断检测标志
#define UART_FLAG_TXE UART传输数据寄存器为空
#define UART_FLAG_TC UART传输完成
#define UART_FLAG_RXNE UART读取数据寄存器不为空
#define UART_FLAG_IDLE UART空闲标志
#define UART_FLAG_ORE UART超限错误
#define UART_FLAG_NE UART噪声错误
#define UART_FLAG_FE UART帧错误
#define UART_FLAG_PE UART奇偶校验错误
返回当前DMA通道传输中剩余的数据单元数。
#define __HAL_DMA_GET_COUNTER(__HANDLE__)
获取DMA通道挂起标志。
#define __HAL_DMA_GET_FLAG(__HANDLE__, __FLAG__)
DMA_FLAG_TCIFx:传输完成标志
DMA_FLAG_HTIFx:半传输完成标志
DMA_FLAG_EIFx:传输错误标志
DMA_ISR_GIFx:全局中断标志
清除DMA通道挂起标志。
#define __HAL_DMA_CLEAR_FLAG(__HANDLE__, __FLAG__)
启用指定的DMA通道中断。
#define __HAL_DMA_ENABLE_IT(__HANDLE__, __INTERRUPT__)
DMA_IT_TC:传输完成中断掩码
DMA_IT_HT:半传输完成中断掩码
DMA_IT_TE:传输错误中断掩码
定时器(TIM)外围设备的功能:
TIM时基初始化
TIM时基开始
TIM时基启动中断
TIM时基启动DMA
TIM输出比较/PWM初始化
TIM输出比较/PWM通道配置
TIM输出比较/PWM启动
TIM输出比较/PWM启动中断
TIM输出比较/PWM启动DMA
TIM输入捕获初始化
TIM输入捕获通道配置
TIM输入捕获启动
TIM输入捕获启动中断
TIM输入捕获启动DMA
TIM单脉冲初始化
TIM单脉冲通道配置
TIM单脉冲启动
TIM编码器接口初始化
TIM编码器接口启动
TIM编码器接口启动中断
TIM编码器接口启动DMA
带中断和DMA的换向事件配置
TIM OCRef清除配置
TIM外部时钟配置
检查指定的EXTI行标志是否已设置
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
清除EXTI的行挂起标志
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
检查指定的EXTI行是否被断言
#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
清除EXTI的行挂起位
#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
在选定的EXTI行上生成软件中断
#define __HAL_GPIO_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
读取指定的输入端口引脚。
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
设置或清除选定的数据端口位。
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
切换指定的GPIO引脚。
void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
锁定GPIO引脚配置寄存器。
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
此功能处理EXTI中断请求。
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
EXTI线路检测回调。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);