STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_uart.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_UART_H
40 #define __STM32F7xx_HAL_UART_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
65 typedef struct
66 {
67  uint32_t BaudRate;
76  uint32_t WordLength;
79  uint32_t StopBits;
82  uint32_t Parity;
89  uint32_t Mode;
92  uint32_t HwFlowCtl;
96  uint32_t OverSampling;
99  uint32_t OneBitSampling;
103 
107 typedef struct
108 {
109  uint32_t AdvFeatureInit;
113  uint32_t TxPinLevelInvert;
116  uint32_t RxPinLevelInvert;
119  uint32_t DataInvert;
123  uint32_t Swap;
126  uint32_t OverrunDisable;
135  uint32_t AutoBaudRateMode;
139  uint32_t MSBFirst;
142 
143 
144 
184 typedef enum
185 {
204 
208 typedef enum
209 {
217 
221 typedef struct
222 {
229  uint8_t *pTxBuffPtr;
231  uint16_t TxXferSize;
233  uint16_t TxXferCount;
235  uint8_t *pRxBuffPtr;
237  uint16_t RxXferSize;
239  uint16_t RxXferCount;
241  uint16_t Mask;
249  __IO HAL_UART_StateTypeDef gState;
253  __IO HAL_UART_StateTypeDef RxState;
256  __IO uint32_t ErrorCode;
259 
264 /* Exported constants --------------------------------------------------------*/
271 #define HAL_UART_ERROR_NONE ((uint32_t)0x00000000U)
272 #define HAL_UART_ERROR_PE ((uint32_t)0x00000001U)
273 #define HAL_UART_ERROR_NE ((uint32_t)0x00000002U)
274 #define HAL_UART_ERROR_FE ((uint32_t)0x00000004U)
275 #define HAL_UART_ERROR_ORE ((uint32_t)0x00000008U)
276 #define HAL_UART_ERROR_DMA ((uint32_t)0x00000010U)
283 #define UART_STOPBITS_1 ((uint32_t)0x00000000U)
284 #define UART_STOPBITS_2 ((uint32_t)USART_CR2_STOP_1)
285 
292 #define UART_PARITY_NONE ((uint32_t)0x00000000U)
293 #define UART_PARITY_EVEN ((uint32_t)USART_CR1_PCE)
294 #define UART_PARITY_ODD ((uint32_t)(USART_CR1_PCE | USART_CR1_PS))
295 
302 #define UART_HWCONTROL_NONE ((uint32_t)0x00000000U)
303 #define UART_HWCONTROL_RTS ((uint32_t)USART_CR3_RTSE)
304 #define UART_HWCONTROL_CTS ((uint32_t)USART_CR3_CTSE)
305 #define UART_HWCONTROL_RTS_CTS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE))
306 
313 #define UART_MODE_RX ((uint32_t)USART_CR1_RE)
314 #define UART_MODE_TX ((uint32_t)USART_CR1_TE)
315 #define UART_MODE_TX_RX ((uint32_t)(USART_CR1_TE |USART_CR1_RE))
316 
323 #define UART_STATE_DISABLE ((uint32_t)0x00000000U)
324 #define UART_STATE_ENABLE ((uint32_t)USART_CR1_UE)
325 
332 #define UART_OVERSAMPLING_16 ((uint32_t)0x00000000U)
333 #define UART_OVERSAMPLING_8 ((uint32_t)USART_CR1_OVER8)
334 
341 #define UART_ONE_BIT_SAMPLE_DISABLE ((uint32_t)0x00000000U)
342 #define UART_ONE_BIT_SAMPLE_ENABLE ((uint32_t)USART_CR3_ONEBIT)
343 
350 #define UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT ((uint32_t)0x0000U)
351 #define UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE ((uint32_t)USART_CR2_ABRMODE_0)
352 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME ((uint32_t)USART_CR2_ABRMODE_1)
353 #define UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME ((uint32_t)USART_CR2_ABRMODE)
354 
361 #define UART_RECEIVER_TIMEOUT_DISABLE ((uint32_t)0x00000000U)
362 #define UART_RECEIVER_TIMEOUT_ENABLE ((uint32_t)USART_CR2_RTOEN)
363 
370 #define UART_LIN_DISABLE ((uint32_t)0x00000000U)
371 #define UART_LIN_ENABLE ((uint32_t)USART_CR2_LINEN)
372 
379 #define UART_LINBREAKDETECTLENGTH_10B ((uint32_t)0x00000000U)
380 #define UART_LINBREAKDETECTLENGTH_11B ((uint32_t)USART_CR2_LBDL)
381 
388 #define UART_DMA_TX_DISABLE ((uint32_t)0x00000000U)
389 #define UART_DMA_TX_ENABLE ((uint32_t)USART_CR3_DMAT)
390 
397 #define UART_DMA_RX_DISABLE ((uint32_t)0x0000U)
398 #define UART_DMA_RX_ENABLE ((uint32_t)USART_CR3_DMAR)
399 
406 #define UART_HALF_DUPLEX_DISABLE ((uint32_t)0x0000U)
407 #define UART_HALF_DUPLEX_ENABLE ((uint32_t)USART_CR3_HDSEL)
408 
415 #define UART_WAKEUPMETHOD_IDLELINE ((uint32_t)0x00000000U)
416 #define UART_WAKEUPMETHOD_ADDRESSMARK ((uint32_t)USART_CR1_WAKE)
417 
424 #define UART_AUTOBAUD_REQUEST ((uint32_t)USART_RQR_ABRRQ)
425 #define UART_SENDBREAK_REQUEST ((uint32_t)USART_RQR_SBKRQ)
426 #define UART_MUTE_MODE_REQUEST ((uint32_t)USART_RQR_MMRQ)
427 #define UART_RXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_RXFRQ)
428 #define UART_TXDATA_FLUSH_REQUEST ((uint32_t)USART_RQR_TXFRQ)
436 #define UART_ADVFEATURE_NO_INIT ((uint32_t)0x00000000U)
437 #define UART_ADVFEATURE_TXINVERT_INIT ((uint32_t)0x00000001U)
438 #define UART_ADVFEATURE_RXINVERT_INIT ((uint32_t)0x00000002U)
439 #define UART_ADVFEATURE_DATAINVERT_INIT ((uint32_t)0x00000004U)
440 #define UART_ADVFEATURE_SWAP_INIT ((uint32_t)0x00000008U)
441 #define UART_ADVFEATURE_RXOVERRUNDISABLE_INIT ((uint32_t)0x00000010U)
442 #define UART_ADVFEATURE_DMADISABLEONERROR_INIT ((uint32_t)0x00000020U)
443 #define UART_ADVFEATURE_AUTOBAUDRATE_INIT ((uint32_t)0x00000040U)
444 #define UART_ADVFEATURE_MSBFIRST_INIT ((uint32_t)0x00000080U)
445 
452 #define UART_ADVFEATURE_TXINV_DISABLE ((uint32_t)0x00000000U)
453 #define UART_ADVFEATURE_TXINV_ENABLE ((uint32_t)USART_CR2_TXINV)
454 
461 #define UART_ADVFEATURE_RXINV_DISABLE ((uint32_t)0x00000000U)
462 #define UART_ADVFEATURE_RXINV_ENABLE ((uint32_t)USART_CR2_RXINV)
463 
470 #define UART_ADVFEATURE_DATAINV_DISABLE ((uint32_t)0x00000000U)
471 #define UART_ADVFEATURE_DATAINV_ENABLE ((uint32_t)USART_CR2_DATAINV)
472 
479 #define UART_ADVFEATURE_SWAP_DISABLE ((uint32_t)0x00000000U)
480 #define UART_ADVFEATURE_SWAP_ENABLE ((uint32_t)USART_CR2_SWAP)
481 
488 #define UART_ADVFEATURE_OVERRUN_ENABLE ((uint32_t)0x00000000U)
489 #define UART_ADVFEATURE_OVERRUN_DISABLE ((uint32_t)USART_CR3_OVRDIS)
490 
497 #define UART_ADVFEATURE_AUTOBAUDRATE_DISABLE ((uint32_t)0x00000000U)
498 #define UART_ADVFEATURE_AUTOBAUDRATE_ENABLE ((uint32_t)USART_CR2_ABREN)
499 
506 #define UART_ADVFEATURE_DMA_ENABLEONRXERROR ((uint32_t)0x00000000U)
507 #define UART_ADVFEATURE_DMA_DISABLEONRXERROR ((uint32_t)USART_CR3_DDRE)
508 
515 #define UART_ADVFEATURE_MSBFIRST_DISABLE ((uint32_t)0x00000000U)
516 #define UART_ADVFEATURE_MSBFIRST_ENABLE ((uint32_t)USART_CR2_MSBFIRST)
517 
524 #define UART_ADVFEATURE_MUTEMODE_DISABLE ((uint32_t)0x00000000U)
525 #define UART_ADVFEATURE_MUTEMODE_ENABLE ((uint32_t)USART_CR1_MME)
526 
533 #define UART_CR2_ADDRESS_LSB_POS ((uint32_t) 24U)
534 
541 #define UART_DE_POLARITY_HIGH ((uint32_t)0x00000000U)
542 #define UART_DE_POLARITY_LOW ((uint32_t)USART_CR3_DEP)
543 
550 #define UART_CR1_DEAT_ADDRESS_LSB_POS ((uint32_t) 21U)
551 
558 #define UART_CR1_DEDT_ADDRESS_LSB_POS ((uint32_t) 16U)
559 
566 #define UART_IT_MASK ((uint32_t)0x001FU)
567 
574 #define HAL_UART_TIMEOUT_VALUE 0x1FFFFFFU
575 
584 #define UART_FLAG_TEACK ((uint32_t)0x00200000U)
585 #define UART_FLAG_SBKF ((uint32_t)0x00040000U)
586 #define UART_FLAG_CMF ((uint32_t)0x00020000U)
587 #define UART_FLAG_BUSY ((uint32_t)0x00010000U)
588 #define UART_FLAG_ABRF ((uint32_t)0x00008000U)
589 #define UART_FLAG_ABRE ((uint32_t)0x00004000U)
590 #define UART_FLAG_EOBF ((uint32_t)0x00001000U)
591 #define UART_FLAG_RTOF ((uint32_t)0x00000800U)
592 #define UART_FLAG_CTS ((uint32_t)0x00000400U)
593 #define UART_FLAG_CTSIF ((uint32_t)0x00000200U)
594 #define UART_FLAG_LBDF ((uint32_t)0x00000100U)
595 #define UART_FLAG_TXE ((uint32_t)0x00000080U)
596 #define UART_FLAG_TC ((uint32_t)0x00000040U)
597 #define UART_FLAG_RXNE ((uint32_t)0x00000020U)
598 #define UART_FLAG_IDLE ((uint32_t)0x00000010U)
599 #define UART_FLAG_ORE ((uint32_t)0x00000008U)
600 #define UART_FLAG_NE ((uint32_t)0x00000004U)
601 #define UART_FLAG_FE ((uint32_t)0x00000002U)
602 #define UART_FLAG_PE ((uint32_t)0x00000001U)
603 
617 #define UART_IT_PE ((uint32_t)0x0028U)
618 #define UART_IT_TXE ((uint32_t)0x0727U)
619 #define UART_IT_TC ((uint32_t)0x0626U)
620 #define UART_IT_RXNE ((uint32_t)0x0525U)
621 #define UART_IT_IDLE ((uint32_t)0x0424U)
622 #define UART_IT_LBD ((uint32_t)0x0846U)
623 #define UART_IT_CTS ((uint32_t)0x096AU)
624 #define UART_IT_CM ((uint32_t)0x112EU)
625 
633 #define UART_IT_ERR ((uint32_t)0x0060U)
634 
638 #define UART_IT_ORE ((uint32_t)0x0300U)
639 #define UART_IT_NE ((uint32_t)0x0200U)
640 #define UART_IT_FE ((uint32_t)0x0100U)
641 
648 #define UART_CLEAR_PEF USART_ICR_PECF
649 #define UART_CLEAR_FEF USART_ICR_FECF
650 #define UART_CLEAR_NEF USART_ICR_NCF
651 #define UART_CLEAR_OREF USART_ICR_ORECF
652 #define UART_CLEAR_IDLEF USART_ICR_IDLECF
653 #define UART_CLEAR_TCF USART_ICR_TCCF
654 #define UART_CLEAR_LBDF USART_ICR_LBDCF
655 #define UART_CLEAR_CTSF USART_ICR_CTSCF
656 #define UART_CLEAR_RTOF USART_ICR_RTOCF
657 #define UART_CLEAR_EOBF USART_ICR_EOBCF
658 #define UART_CLEAR_CMF USART_ICR_CMCF
668 /* Exported macros -----------------------------------------------------------*/
669 
677 #define __HAL_UART_RESET_HANDLE_STATE(__HANDLE__) do{ \
678  (__HANDLE__)->gState = HAL_UART_STATE_RESET; \
679  (__HANDLE__)->RxState = HAL_UART_STATE_RESET; \
680  } while(0)
681 
685 #define __HAL_UART_FLUSH_DRREGISTER(__HANDLE__) \
686  do{ \
687  SET_BIT((__HANDLE__)->Instance->RQR, UART_RXDATA_FLUSH_REQUEST); \
688  SET_BIT((__HANDLE__)->Instance->RQR, UART_TXDATA_FLUSH_REQUEST); \
689  } while(0)
690 
709 #define __HAL_UART_CLEAR_IT(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (uint32_t)(__FLAG__))
710 
715 #define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) __HAL_UART_CLEAR_IT((__HANDLE__),UART_CLEAR_PEF)
716 
721 #define __HAL_UART_CLEAR_FEFLAG(__HANDLE__) __HAL_UART_CLEAR_IT((__HANDLE__),UART_CLEAR_FEF)
722 
727 #define __HAL_UART_CLEAR_NEFLAG(__HANDLE__) __HAL_UART_CLEAR_IT((__HANDLE__),UART_CLEAR_NEF)
728 
733 #define __HAL_UART_CLEAR_OREFLAG(__HANDLE__) __HAL_UART_CLEAR_IT((__HANDLE__),UART_CLEAR_OREF)
734 
739 #define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_IT((__HANDLE__),UART_CLEAR_IDLEF)
740 
768 #define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
769 
786 #define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
787  ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
788  ((__HANDLE__)->Instance->CR3 |= (1U << ((__INTERRUPT__) & UART_IT_MASK))))
789 
790 
806 #define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((((uint8_t)(__INTERRUPT__)) >> 5U) == 1)? ((__HANDLE__)->Instance->CR1 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
807  ((((uint8_t)(__INTERRUPT__)) >> 5U) == 2)? ((__HANDLE__)->Instance->CR2 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))): \
808  ((__HANDLE__)->Instance->CR3 &= ~ (1U << ((__INTERRUPT__) & UART_IT_MASK))))
809 
827 #define __HAL_UART_GET_IT(__HANDLE__, __IT__) ((__HANDLE__)->Instance->ISR & ((uint32_t)1 << ((__IT__)>> 0x08)))
828 
845 #define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__) ((((((uint8_t)(__IT__)) >> 5U) == 1)? (__HANDLE__)->Instance->CR1:(((((uint8_t)(__IT__)) >> 5U) == 2)? \
846  (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & ((uint32_t)1 << (((uint16_t)(__IT__)) & UART_IT_MASK)))
847 
859 #define __HAL_UART_SEND_REQ(__HANDLE__, __REQ__) ((__HANDLE__)->Instance->RQR |= (uint32_t)(__REQ__))
860 
865 #define __HAL_UART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3|= USART_CR3_ONEBIT)
866 
871 #define __HAL_UART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_ONEBIT))
872 
877 #define __HAL_UART_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= USART_CR1_UE)
878 
883 #define __HAL_UART_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= ~USART_CR1_UE)
884 
898 #define __HAL_UART_HWCONTROL_CTS_ENABLE(__HANDLE__) \
899  do{ \
900  SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
901  (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_CTSE; \
902  } while(0)
903 
917 #define __HAL_UART_HWCONTROL_CTS_DISABLE(__HANDLE__) \
918  do{ \
919  CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_CTSE); \
920  (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_CTSE); \
921  } while(0)
922 
936 #define __HAL_UART_HWCONTROL_RTS_ENABLE(__HANDLE__) \
937  do{ \
938  SET_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE); \
939  (__HANDLE__)->Init.HwFlowCtl |= USART_CR3_RTSE; \
940  } while(0)
941 
955 #define __HAL_UART_HWCONTROL_RTS_DISABLE(__HANDLE__) \
956  do{ \
957  CLEAR_BIT((__HANDLE__)->Instance->CR3, USART_CR3_RTSE);\
958  (__HANDLE__)->Init.HwFlowCtl &= ~(USART_CR3_RTSE); \
959  } while(0)
960 
965 /* Private macros --------------------------------------------------------*/
974 #define UART_DIV_LPUART(_PCLK_, _BAUD_) ((((_PCLK_)*256)+((_BAUD_)/2))/((_BAUD_)))
975 
981 #define UART_DIV_SAMPLING8(_PCLK_, _BAUD_) ((((_PCLK_)*2)+((_BAUD_)/2))/((_BAUD_)))
982 
988 #define UART_DIV_SAMPLING16(_PCLK_, _BAUD_) ((((_PCLK_))+((_BAUD_)/2))/((_BAUD_)))
989 
996 #define IS_UART_BAUDRATE(BAUDRATE) ((BAUDRATE) < 9000001)
997 
1002 #define IS_UART_ASSERTIONTIME(TIME) ((TIME) <= 0x1F)
1003 
1008 #define IS_UART_DEASSERTIONTIME(TIME) ((TIME) <= 0x1F)
1009 
1010 #define IS_UART_STOPBITS(STOPBITS) (((STOPBITS) == UART_STOPBITS_1) || \
1011  ((STOPBITS) == UART_STOPBITS_2))
1012 
1013 #define IS_UART_PARITY(PARITY) (((PARITY) == UART_PARITY_NONE) || \
1014  ((PARITY) == UART_PARITY_EVEN) || \
1015  ((PARITY) == UART_PARITY_ODD))
1016 
1017 #define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL)\
1018  (((CONTROL) == UART_HWCONTROL_NONE) || \
1019  ((CONTROL) == UART_HWCONTROL_RTS) || \
1020  ((CONTROL) == UART_HWCONTROL_CTS) || \
1021  ((CONTROL) == UART_HWCONTROL_RTS_CTS))
1022 
1023 #define IS_UART_MODE(MODE) ((((MODE) & (~((uint32_t)(UART_MODE_TX_RX)))) == (uint32_t)0x00) && ((MODE) != (uint32_t)0x00))
1024 
1025 #define IS_UART_STATE(STATE) (((STATE) == UART_STATE_DISABLE) || \
1026  ((STATE) == UART_STATE_ENABLE))
1027 
1028 #define IS_UART_OVERSAMPLING(SAMPLING) (((SAMPLING) == UART_OVERSAMPLING_16) || \
1029  ((SAMPLING) == UART_OVERSAMPLING_8))
1030 
1031 #define IS_UART_ONE_BIT_SAMPLE(ONEBIT) (((ONEBIT) == UART_ONE_BIT_SAMPLE_DISABLE) || \
1032  ((ONEBIT) == UART_ONE_BIT_SAMPLE_ENABLE))
1033 
1034 #define IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(MODE) (((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT) || \
1035  ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE) || \
1036  ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME) || \
1037  ((MODE) == UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME))
1038 
1039 #define IS_UART_RECEIVER_TIMEOUT(TIMEOUT) (((TIMEOUT) == UART_RECEIVER_TIMEOUT_DISABLE) || \
1040  ((TIMEOUT) == UART_RECEIVER_TIMEOUT_ENABLE))
1041 
1042 #define IS_UART_LIN(LIN) (((LIN) == UART_LIN_DISABLE) || \
1043  ((LIN) == UART_LIN_ENABLE))
1044 
1045 #define IS_UART_WAKEUPMETHOD(WAKEUP) (((WAKEUP) == UART_WAKEUPMETHOD_IDLELINE) || \
1046  ((WAKEUP) == UART_WAKEUPMETHOD_ADDRESSMARK))
1047 
1048 #define IS_UART_LIN_BREAK_DETECT_LENGTH(LENGTH) (((LENGTH) == UART_LINBREAKDETECTLENGTH_10B) || \
1049  ((LENGTH) == UART_LINBREAKDETECTLENGTH_11B))
1050 
1051 #define IS_UART_DMA_TX(DMATX) (((DMATX) == UART_DMA_TX_DISABLE) || \
1052  ((DMATX) == UART_DMA_TX_ENABLE))
1053 
1054 #define IS_UART_DMA_RX(DMARX) (((DMARX) == UART_DMA_RX_DISABLE) || \
1055  ((DMARX) == UART_DMA_RX_ENABLE))
1056 
1057 #define IS_UART_HALF_DUPLEX(HDSEL) (((HDSEL) == UART_HALF_DUPLEX_DISABLE) || \
1058  ((HDSEL) == UART_HALF_DUPLEX_ENABLE))
1059 
1060 #define IS_UART_REQUEST_PARAMETER(PARAM) (((PARAM) == UART_AUTOBAUD_REQUEST) || \
1061  ((PARAM) == UART_SENDBREAK_REQUEST) || \
1062  ((PARAM) == UART_MUTE_MODE_REQUEST) || \
1063  ((PARAM) == UART_RXDATA_FLUSH_REQUEST) || \
1064  ((PARAM) == UART_TXDATA_FLUSH_REQUEST))
1065 
1066 #define IS_UART_ADVFEATURE_INIT(INIT) ((INIT) <= (UART_ADVFEATURE_NO_INIT | \
1067  UART_ADVFEATURE_TXINVERT_INIT | \
1068  UART_ADVFEATURE_RXINVERT_INIT | \
1069  UART_ADVFEATURE_DATAINVERT_INIT | \
1070  UART_ADVFEATURE_SWAP_INIT | \
1071  UART_ADVFEATURE_RXOVERRUNDISABLE_INIT | \
1072  UART_ADVFEATURE_DMADISABLEONERROR_INIT | \
1073  UART_ADVFEATURE_AUTOBAUDRATE_INIT | \
1074  UART_ADVFEATURE_MSBFIRST_INIT))
1075 
1076 #define IS_UART_ADVFEATURE_TXINV(TXINV) (((TXINV) == UART_ADVFEATURE_TXINV_DISABLE) || \
1077  ((TXINV) == UART_ADVFEATURE_TXINV_ENABLE))
1078 
1079 #define IS_UART_ADVFEATURE_RXINV(RXINV) (((RXINV) == UART_ADVFEATURE_RXINV_DISABLE) || \
1080  ((RXINV) == UART_ADVFEATURE_RXINV_ENABLE))
1081 
1082 #define IS_UART_ADVFEATURE_DATAINV(DATAINV) (((DATAINV) == UART_ADVFEATURE_DATAINV_DISABLE) || \
1083  ((DATAINV) == UART_ADVFEATURE_DATAINV_ENABLE))
1084 
1085 #define IS_UART_ADVFEATURE_SWAP(SWAP) (((SWAP) == UART_ADVFEATURE_SWAP_DISABLE) || \
1086  ((SWAP) == UART_ADVFEATURE_SWAP_ENABLE))
1087 
1088 #define IS_UART_OVERRUN(OVERRUN) (((OVERRUN) == UART_ADVFEATURE_OVERRUN_ENABLE) || \
1089  ((OVERRUN) == UART_ADVFEATURE_OVERRUN_DISABLE))
1090 
1091 #define IS_UART_ADVFEATURE_AUTOBAUDRATE(AUTOBAUDRATE) (((AUTOBAUDRATE) == UART_ADVFEATURE_AUTOBAUDRATE_DISABLE) || \
1092  ((AUTOBAUDRATE) == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE))
1093 
1094 #define IS_UART_ADVFEATURE_DMAONRXERROR(DMA) (((DMA) == UART_ADVFEATURE_DMA_ENABLEONRXERROR) || \
1095  ((DMA) == UART_ADVFEATURE_DMA_DISABLEONRXERROR))
1096 
1097 #define IS_UART_ADVFEATURE_MSBFIRST(MSBFIRST) (((MSBFIRST) == UART_ADVFEATURE_MSBFIRST_DISABLE) || \
1098  ((MSBFIRST) == UART_ADVFEATURE_MSBFIRST_ENABLE))
1099 
1100 #define IS_UART_MUTE_MODE(MUTE) (((MUTE) == UART_ADVFEATURE_MUTEMODE_DISABLE) || \
1101  ((MUTE) == UART_ADVFEATURE_MUTEMODE_ENABLE))
1102 
1103 #define IS_UART_DE_POLARITY(POLARITY) (((POLARITY) == UART_DE_POLARITY_HIGH) || \
1104  ((POLARITY) == UART_DE_POLARITY_LOW))
1105 
1109 /* Include UART HAL Extension module */
1110 #include "stm32f7xx_hal_uart_ex.h"
1111 /* Exported functions --------------------------------------------------------*/
1120 /* Initialization and de-initialization functions ****************************/
1123 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength);
1124 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod);
1125 HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime);
1129 
1138 /* IO operation functions *****************************************************/
1139 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
1140 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
1141 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
1142 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
1143 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
1144 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
1148 
1155 
1164 /* Peripheral Control functions ************************************************/
1172 
1181 /* Peripheral State and Errors functions **************************************************/
1182 HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart);
1183 uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart);
1184 
1193 /* Private functions -----------------------------------------------------------*/
1200 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout);
1202 
1215 #ifdef __cplusplus
1216 }
1217 #endif
1218 
1219 #endif /* __STM32F7xx_HAL_UART_H */
1220 
1221 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod)
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart)
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
UART_AdvFeatureInitTypeDef AdvancedInit
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_LockTypeDef
HAL Lock structures definition.
__IO HAL_UART_StateTypeDef RxState
DMA_HandleTypeDef * hdmatx
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
HAL_LockTypeDef Lock
void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart)
DMA_HandleTypeDef * hdmarx
Header file of UART HAL Extension module.
HAL_StatusTypeDef HAL_MultiProcessorEx_AddressLength_Set(UART_HandleTypeDef *huart, uint32_t AddressLength)
USART_TypeDef * Instance
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart)
#define __IO
Definition: core_cm0.h:213
FlagStatus
Definition: stm32f7xx.h:152
__IO HAL_UART_StateTypeDef gState
UART Advanced Features initialization structure definition.
UART_ClockSourceTypeDef
UART clock sources definition.
Universal Synchronous Asynchronous Receiver Transmitter.
Definition: stm32f745xx.h:928
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart)
UART_InitTypeDef Init
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength)
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_RS485Ex_Init(UART_HandleTypeDef *huart, uint32_t Polarity, uint32_t AssertionTime, uint32_t DeassertionTime)
uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart)
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_UART_StateTypeDef
HAL UART State structures definition.
DMA handle Structure definition.
HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart)
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart)
UART Init Structure definition.
HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart)
HAL_StatusTypeDef
HAL Status structures definition.
UART handle Structure definition.
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)