STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
stm32f4xx_hal_uart.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef __STM32F4xx_HAL_UART_H
21#define __STM32F4xx_HAL_UART_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32f4xx_hal_def.h"
29
38/* Exported types ------------------------------------------------------------*/
46typedef struct
47{
48 uint32_t BaudRate;
54 uint32_t WordLength;
57 uint32_t StopBits;
60 uint32_t Parity;
67 uint32_t Mode;
70 uint32_t HwFlowCtl;
73 uint32_t OverSampling;
76
136
144typedef uint32_t HAL_UART_RxTypeTypeDef;
145
156
161{
162 USART_TypeDef *Instance;
166 const uint8_t *pTxBuffPtr;
168 uint16_t TxXferSize;
170 __IO uint16_t TxXferCount;
172 uint8_t *pRxBuffPtr;
174 uint16_t RxXferSize;
176 __IO uint16_t RxXferCount;
195 __IO uint32_t ErrorCode;
197#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
198 void (* TxHalfCpltCallback)(struct __UART_HandleTypeDef *huart);
199 void (* TxCpltCallback)(struct __UART_HandleTypeDef *huart);
200 void (* RxHalfCpltCallback)(struct __UART_HandleTypeDef *huart);
201 void (* RxCpltCallback)(struct __UART_HandleTypeDef *huart);
202 void (* ErrorCallback)(struct __UART_HandleTypeDef *huart);
203 void (* AbortCpltCallback)(struct __UART_HandleTypeDef *huart);
204 void (* AbortTransmitCpltCallback)(struct __UART_HandleTypeDef *huart);
205 void (* AbortReceiveCpltCallback)(struct __UART_HandleTypeDef *huart);
206 void (* WakeupCallback)(struct __UART_HandleTypeDef *huart);
207 void (* RxEventCallback)(struct __UART_HandleTypeDef *huart, uint16_t Pos);
209 void (* MspInitCallback)(struct __UART_HandleTypeDef *huart);
210 void (* MspDeInitCallback)(struct __UART_HandleTypeDef *huart);
211#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
212
214
215#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
219typedef enum
220{
221 HAL_UART_TX_HALFCOMPLETE_CB_ID = 0x00U,
222 HAL_UART_TX_COMPLETE_CB_ID = 0x01U,
223 HAL_UART_RX_HALFCOMPLETE_CB_ID = 0x02U,
224 HAL_UART_RX_COMPLETE_CB_ID = 0x03U,
225 HAL_UART_ERROR_CB_ID = 0x04U,
226 HAL_UART_ABORT_COMPLETE_CB_ID = 0x05U,
227 HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID = 0x06U,
228 HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID = 0x07U,
229 HAL_UART_WAKEUP_CB_ID = 0x08U,
231 HAL_UART_MSPINIT_CB_ID = 0x0BU,
232 HAL_UART_MSPDEINIT_CB_ID = 0x0CU
234} HAL_UART_CallbackIDTypeDef;
235
239typedef void (*pUART_CallbackTypeDef)(UART_HandleTypeDef *huart);
240typedef void (*pUART_RxEventCallbackTypeDef)(struct __UART_HandleTypeDef *huart, uint16_t Pos);
242#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
243
248/* Exported constants --------------------------------------------------------*/
256#define HAL_UART_ERROR_NONE 0x00000000U
257#define HAL_UART_ERROR_PE 0x00000001U
258#define HAL_UART_ERROR_NE 0x00000002U
259#define HAL_UART_ERROR_FE 0x00000004U
260#define HAL_UART_ERROR_ORE 0x00000008U
261#define HAL_UART_ERROR_DMA 0x00000010U
262#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
263#define HAL_UART_ERROR_INVALID_CALLBACK 0x00000020U
264#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
272#define UART_WORDLENGTH_8B 0x00000000U
273#define UART_WORDLENGTH_9B ((uint32_t)USART_CR1_M)
281#define UART_STOPBITS_1 0x00000000U
282#define UART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1)
290#define UART_PARITY_NONE 0x00000000U
291#define UART_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
292#define UART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
300#define UART_HWCONTROL_NONE 0x00000000U
301#define UART_HWCONTROL_RTS ((uint32_t)USART_CR3_RTSE)
302#define UART_HWCONTROL_CTS ((uint32_t)USART_CR3_CTSE)
303#define UART_HWCONTROL_RTS_CTS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE))
311#define UART_MODE_RX ((uint32_t)USART_CR1_RE)
312#define UART_MODE_TX ((uint32_t)USART_CR1_TE)
313#define UART_MODE_TX_RX ((uint32_t)(USART_CR1_TE | USART_CR1_RE))
321#define UART_STATE_DISABLE 0x00000000U
322#define UART_STATE_ENABLE ((uint32_t)USART_CR1_UE)
330#define UART_OVERSAMPLING_16 0x00000000U
331#define UART_OVERSAMPLING_8 ((uint32_t)USART_CR1_OVER8)
339#define UART_LINBREAKDETECTLENGTH_10B 0x00000000U
340#define UART_LINBREAKDETECTLENGTH_11B ((uint32_t)USART_CR2_LBDL)
348#define UART_WAKEUPMETHOD_IDLELINE 0x00000000U
349#define UART_WAKEUPMETHOD_ADDRESSMARK ((uint32_t)USART_CR1_WAKE)
359#define UART_FLAG_CTS ((uint32_t)USART_SR_CTS)
360#define UART_FLAG_LBD ((uint32_t)USART_SR_LBD)
361#define UART_FLAG_TXE ((uint32_t)USART_SR_TXE)
362#define UART_FLAG_TC ((uint32_t)USART_SR_TC)
363#define UART_FLAG_RXNE ((uint32_t)USART_SR_RXNE)
364#define UART_FLAG_IDLE ((uint32_t)USART_SR_IDLE)
365#define UART_FLAG_ORE ((uint32_t)USART_SR_ORE)
366#define UART_FLAG_NE ((uint32_t)USART_SR_NE)
367#define UART_FLAG_FE ((uint32_t)USART_SR_FE)
368#define UART_FLAG_PE ((uint32_t)USART_SR_PE)
383#define UART_IT_PE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_PEIE))
384#define UART_IT_TXE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_TXEIE))
385#define UART_IT_TC ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_TCIE))
386#define UART_IT_RXNE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_RXNEIE))
387#define UART_IT_IDLE ((uint32_t)(UART_CR1_REG_INDEX << 28U | USART_CR1_IDLEIE))
388
389#define UART_IT_LBD ((uint32_t)(UART_CR2_REG_INDEX << 28U | USART_CR2_LBDIE))
390
391#define UART_IT_CTS ((uint32_t)(UART_CR3_REG_INDEX << 28U | USART_CR3_CTSIE))
392#define UART_IT_ERR ((uint32_t)(UART_CR3_REG_INDEX << 28U | USART_CR3_EIE))
400#define HAL_UART_RECEPTION_STANDARD (0x00000000U)
401#define HAL_UART_RECEPTION_TOIDLE (0x00000001U)
409#define HAL_UART_RXEVENT_TC (0x00000000U)
410#define HAL_UART_RXEVENT_HT (0x00000001U)
411#define HAL_UART_RXEVENT_IDLE (0x00000002U)
420/* Exported macro ------------------------------------------------------------*/
431#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
432#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \
433 (__HANDLE__)->gState = HAL_UART_STATE_RESET; \
434 (__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
435 (__HANDLE__)->MspInitCallback = NULL; \
436 (__HANDLE__)->MspDeInitCallback = NULL; \
437 } while(0U)
438#else
439#define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \
440 (__HANDLE__)->gState = HAL_UART_STATE_RESET; \
441 (__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
442 } while(0U)
443#endif /*USE_HAL_UART_REGISTER_CALLBACKS */
444
450#define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__) ((__HANDLE__)->Instance->DR)
451
470#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
471
494#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
495
502#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) \
503 do{ \
504 __IO uint32_t tmpreg = 0x00U; \
505 tmpreg = (__HANDLE__)->Instance->SR; \
506 tmpreg = (__HANDLE__)->Instance->DR; \
507 UNUSED(tmpreg); \
508 } while(0U)
509
516#define __HAL_UART_CLEAR_FEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
517
524#define __HAL_UART_CLEAR_NEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
525
532#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
533
540#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
541
558#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 |= ((__INTERRUPT__) & UART_IT_MASK)): \
559 (((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 |= ((__INTERRUPT__) & UART_IT_MASK)): \
560 ((__HANDLE__)->Instance->CR3 |= ((__INTERRUPT__) & UART_IT_MASK)))
561
578#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((((__INTERRUPT__) >> 28U) == UART_CR1_REG_INDEX)? ((__HANDLE__)->Instance->CR1 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
579 (((__INTERRUPT__) >> 28U) == UART_CR2_REG_INDEX)? ((__HANDLE__)->Instance->CR2 &= ~((__INTERRUPT__) & UART_IT_MASK)): \
580 ((__HANDLE__)->Instance->CR3 &= ~ ((__INTERRUPT__) & UART_IT_MASK)))
581
597#define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == UART_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == UART_CR2_REG_INDEX)? \
598 (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & UART_IT_MASK))
599
614#define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__) \
615 do{ \
616 ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
617 (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \
618 } while(0U)
619
634#define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__) \
635 do{ \
636 ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
637 (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \
638 } while(0U)
639
654#define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__) \
655 do{ \
656 ATOMIC_SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
657 (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \
658 } while(0U)
659
674#define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__) \
675 do{ \
676 ATOMIC_CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
677 (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \
678 } while(0U)
679
684#define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
685
690#define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3\
691 &= (uint16_t)~((uint16_t)USART_CR3_ONEBIT))
692
697#define __HAL_UART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
698
703#define __HAL_UART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
708/* Exported functions --------------------------------------------------------*/
717/* Initialization/de-initialization functions **********************************/
720HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
721HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
725
726/* Callbacks Register/UnRegister functions ***********************************/
727#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
728HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID,
729 pUART_CallbackTypeDef pCallback);
730HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID);
731
732HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallbackTypeDef pCallback);
733HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart);
734#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
735
744/* IO operation functions *******************************************************/
745HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
746HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
747HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
748HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
749HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size);
750HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
754
755HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen,
756 uint32_t Timeout);
757HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
758HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
759
761
762/* Transfer Abort functions */
769
779
780void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size);
781
789/* Peripheral Control functions ************************************************/
802/* Peripheral State functions **************************************************/
804uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart);
812/* Private types -------------------------------------------------------------*/
813/* Private variables ---------------------------------------------------------*/
814/* Private constants ---------------------------------------------------------*/
821#define UART_IT_MASK 0x0000FFFFU
822
823#define UART_CR1_REG_INDEX 1U
824#define UART_CR2_REG_INDEX 2U
825#define UART_CR3_REG_INDEX 3U
830/* Private macros ------------------------------------------------------------*/
834#define IS_UART_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B) || \
835 ((LENGTH) == UART_WORDLENGTH_9B))
836#define IS_UART_LIN_WORD_LENGTH(LENGTH) (((LENGTH) == UART_WORDLENGTH_8B))
837#define IS_UART_STOPBITS(STOPBITS) (((STOPBITS) == UART_STOPBITS_1) || \
838 ((STOPBITS) == UART_STOPBITS_2))
839#define IS_UART_PARITY(PARITY) (((PARITY) == UART_PARITY_NONE) || \
840 ((PARITY) == UART_PARITY_EVEN) || \
841 ((PARITY) == UART_PARITY_ODD))
842#define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL)\
843 (((CONTROL) == UART_HWCONTROL_NONE) || \
844 ((CONTROL) == UART_HWCONTROL_RTS) || \
845 ((CONTROL) == UART_HWCONTROL_CTS) || \
846 ((CONTROL) == UART_HWCONTROL_RTS_CTS))
847#define IS_UART_MODE(MODE) ((((MODE) & 0x0000FFF3U) == 0x00U) && ((MODE) != 0x00U))
848#define IS_UART_STATE(STATE) (((STATE) == UART_STATE_DISABLE) || \
849 ((STATE) == UART_STATE_ENABLE))
850#define IS_UART_OVERSAMPLING(SAMPLING) (((SAMPLING) == UART_OVERSAMPLING_16) || \
851 ((SAMPLING) == UART_OVERSAMPLING_8))
852#define IS_UART_LIN_OVERSAMPLING(SAMPLING) (((SAMPLING) == UART_OVERSAMPLING_16))
853#define IS_UART_LIN_BREAK_DETECT_LENGTH(LENGTH) (((LENGTH) == UART_LINBREAKDETECTLENGTH_10B) || \
854 ((LENGTH) == UART_LINBREAKDETECTLENGTH_11B))
855#define IS_UART_WAKEUPMETHOD(WAKEUP) (((WAKEUP) == UART_WAKEUPMETHOD_IDLELINE) || \
856 ((WAKEUP) == UART_WAKEUPMETHOD_ADDRESSMARK))
857#define IS_UART_BAUDRATE(BAUDRATE) ((BAUDRATE) <= 10500000U)
858#define IS_UART_ADDRESS(ADDRESS) ((ADDRESS) <= 0x0FU)
859
860#define UART_DIV_SAMPLING16(_PCLK_, _BAUD_) ((uint32_t)((((uint64_t)(_PCLK_))*25U)/(4U*((uint64_t)(_BAUD_)))))
861#define UART_DIVMANT_SAMPLING16(_PCLK_, _BAUD_) (UART_DIV_SAMPLING16((_PCLK_), (_BAUD_))/100U)
862#define UART_DIVFRAQ_SAMPLING16(_PCLK_, _BAUD_) ((((UART_DIV_SAMPLING16((_PCLK_), (_BAUD_)) - (UART_DIVMANT_SAMPLING16((_PCLK_), (_BAUD_)) * 100U)) * 16U)\
863 + 50U) / 100U)
864/* UART BRR = mantissa + overflow + fraction
865 = (UART DIVMANT << 4) + (UART DIVFRAQ & 0xF0) + (UART DIVFRAQ & 0x0FU) */
866#define UART_BRR_SAMPLING16(_PCLK_, _BAUD_) ((UART_DIVMANT_SAMPLING16((_PCLK_), (_BAUD_)) << 4U) + \
867 (UART_DIVFRAQ_SAMPLING16((_PCLK_), (_BAUD_)) & 0xF0U) + \
868 (UART_DIVFRAQ_SAMPLING16((_PCLK_), (_BAUD_)) & 0x0FU))
869
870#define UART_DIV_SAMPLING8(_PCLK_, _BAUD_) ((uint32_t)((((uint64_t)(_PCLK_))*25U)/(2U*((uint64_t)(_BAUD_)))))
871#define UART_DIVMANT_SAMPLING8(_PCLK_, _BAUD_) (UART_DIV_SAMPLING8((_PCLK_), (_BAUD_))/100U)
872#define UART_DIVFRAQ_SAMPLING8(_PCLK_, _BAUD_) ((((UART_DIV_SAMPLING8((_PCLK_), (_BAUD_)) - (UART_DIVMANT_SAMPLING8((_PCLK_), (_BAUD_)) * 100U)) * 8U)\
873 + 50U) / 100U)
874/* UART BRR = mantissa + overflow + fraction
875 = (UART DIVMANT << 4) + ((UART DIVFRAQ & 0xF8) << 1) + (UART DIVFRAQ & 0x07U) */
876#define UART_BRR_SAMPLING8(_PCLK_, _BAUD_) ((UART_DIVMANT_SAMPLING8((_PCLK_), (_BAUD_)) << 4U) + \
877 ((UART_DIVFRAQ_SAMPLING8((_PCLK_), (_BAUD_)) & 0xF8U) << 1U) + \
878 (UART_DIVFRAQ_SAMPLING8((_PCLK_), (_BAUD_)) & 0x07U))
879
884/* Private functions ---------------------------------------------------------*/
889HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
890HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
891
904#ifdef __cplusplus
905}
906#endif
907
908#endif /* __STM32F4xx_HAL_UART_H */
909
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
UART MSP DeInit.
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength)
Initializes the LIN mode according to the specified parameters in the UART_InitTypeDef and create the...
HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart)
DeInitializes the UART peripheral.
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart)
Initializes the half-duplex mode according to the specified parameters in the UART_InitTypeDef and cr...
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod)
Initializes the Multi-Processor mode according to the specified parameters in the UART_InitTypeDef an...
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
Initializes the UART mode according to the specified parameters in the UART_InitTypeDef and create th...
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
UART MSP Init.
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
Sends an amount of data in blocking mode.
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart)
Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart)
Abort ongoing transfers (blocking mode).
HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart)
Abort ongoing transfers (Interrupt mode).
HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart)
Provide Rx Event type that has lead to RxEvent callback execution.
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
Rx Transfer completed callbacks.
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint16_t *RxLen, uint32_t Timeout)
Receive an amount of data in blocking mode till either the expected number of data is received or an ...
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
Tx Transfer completed callbacks.
void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart)
UART Abort Complete callback.
void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart)
UART Abort Receive Complete callback.
HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart)
Abort ongoing Transmit transfer (blocking mode).
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
Sends an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
Sends an amount of data in DMA mode.
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
Rx Half Transfer completed callbacks.
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
UART error callbacks.
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart)
Pauses the DMA Transfer.
HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart)
Abort ongoing Receive transfer (blocking mode).
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
This function handles UART interrupt request.
HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart)
Abort ongoing Receive transfer (Interrupt mode).
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
Stops the DMA Transfer.
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Receives an amount of data in blocking mode.
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
Reception Event Callback (Rx event notification called after use of advanced reception service).
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receives an amount of data in DMA mode.
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receives an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receive an amount of data in interrupt mode till either the expected number of data is received or an...
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart)
Resumes the DMA Transfer.
void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
UART Abort Complete callback.
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receive an amount of data in DMA mode till either the expected number of data is received or an IDLE ...
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
Tx Half Transfer completed callbacks.
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart)
Enables the UART receiver and disables the UART transmitter.
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart)
Enables the UART transmitter and disables the UART receiver.
HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart)
Enters the UART in mute mode.
HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart)
Exits the UART mute mode: wake up software.
HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart)
Transmits break characters.
uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart)
Return the UART error code.
HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart)
Returns the UART state.
struct __UART_HandleTypeDef UART_HandleTypeDef
UART handle Structure definition.
uint32_t HAL_UART_RxTypeTypeDef
HAL UART Reception type definition.
uint32_t HAL_UART_RxEventTypeTypeDef
HAL UART Rx Event type definition.
HAL_UART_StateTypeDef
HAL UART State structures definition.
@ HAL_UART_STATE_BUSY_TX_RX
@ HAL_UART_STATE_ERROR
@ HAL_UART_STATE_TIMEOUT
@ HAL_UART_STATE_RESET
@ HAL_UART_STATE_BUSY
@ HAL_UART_STATE_BUSY_TX
@ HAL_UART_STATE_READY
@ HAL_UART_STATE_BUSY_RX
HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Start Receive operation in DMA mode.
HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Start Receive operation in interrupt mode.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition
HAL_LockTypeDef
HAL Lock structures definition
UART Init Structure definition.
DMA handle Structure definition.
UART handle Structure definition.
__IO HAL_UART_RxEventTypeTypeDef RxEventType
__IO HAL_UART_StateTypeDef gState
__IO HAL_UART_StateTypeDef RxState
DMA_HandleTypeDef * hdmarx
__IO HAL_UART_RxTypeTypeDef ReceptionType
DMA_HandleTypeDef * hdmatx