268#ifdef HAL_UART_MODULE_ENABLED
285#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
304 uint32_t Tickstart, uint32_t Timeout);
386#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
387 UART_InitCallbacksToDefault(huart);
389 if (huart->MspInitCallback == NULL)
395 huart->MspInitCallback(huart);
413 CLEAR_BIT(huart->
Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
414 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
453#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
454 UART_InitCallbacksToDefault(huart);
456 if (huart->MspInitCallback == NULL)
462 huart->MspInitCallback(huart);
480 CLEAR_BIT(huart->
Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
481 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN));
484 SET_BIT(huart->
Instance->CR3, USART_CR3_HDSEL);
530#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
531 UART_InitCallbacksToDefault(huart);
533 if (huart->MspInitCallback == NULL)
539 huart->MspInitCallback(huart);
557 CLEAR_BIT(huart->
Instance->CR2, (USART_CR2_CLKEN));
558 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
561 SET_BIT(huart->
Instance->CR2, USART_CR2_LINEN);
564 CLEAR_BIT(huart->
Instance->CR2, USART_CR2_LBDL);
565 SET_BIT(huart->
Instance->CR2, BreakDetectLength);
613#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
614 UART_InitCallbacksToDefault(huart);
616 if (huart->MspInitCallback == NULL)
622 huart->MspInitCallback(huart);
640 CLEAR_BIT(huart->
Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
641 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
644 CLEAR_BIT(huart->
Instance->CR2, USART_CR2_ADD);
645 SET_BIT(huart->
Instance->CR2, Address);
648 CLEAR_BIT(huart->
Instance->CR1, USART_CR1_WAKE);
649 SET_BIT(huart->
Instance->CR1, WakeUpMethod);
685#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
686 if (huart->MspDeInitCallback == NULL)
691 huart->MspDeInitCallback(huart);
739#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
762 pUART_CallbackTypeDef pCallback)
766 if (pCallback == NULL)
769 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
778 case HAL_UART_TX_HALFCOMPLETE_CB_ID :
779 huart->TxHalfCpltCallback = pCallback;
782 case HAL_UART_TX_COMPLETE_CB_ID :
783 huart->TxCpltCallback = pCallback;
786 case HAL_UART_RX_HALFCOMPLETE_CB_ID :
787 huart->RxHalfCpltCallback = pCallback;
790 case HAL_UART_RX_COMPLETE_CB_ID :
791 huart->RxCpltCallback = pCallback;
794 case HAL_UART_ERROR_CB_ID :
795 huart->ErrorCallback = pCallback;
798 case HAL_UART_ABORT_COMPLETE_CB_ID :
799 huart->AbortCpltCallback = pCallback;
802 case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID :
803 huart->AbortTransmitCpltCallback = pCallback;
806 case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID :
807 huart->AbortReceiveCpltCallback = pCallback;
810 case HAL_UART_MSPINIT_CB_ID :
811 huart->MspInitCallback = pCallback;
814 case HAL_UART_MSPDEINIT_CB_ID :
815 huart->MspDeInitCallback = pCallback;
820 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
831 case HAL_UART_MSPINIT_CB_ID :
832 huart->MspInitCallback = pCallback;
835 case HAL_UART_MSPDEINIT_CB_ID :
836 huart->MspDeInitCallback = pCallback;
841 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
851 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
889 case HAL_UART_TX_HALFCOMPLETE_CB_ID :
893 case HAL_UART_TX_COMPLETE_CB_ID :
897 case HAL_UART_RX_HALFCOMPLETE_CB_ID :
901 case HAL_UART_RX_COMPLETE_CB_ID :
905 case HAL_UART_ERROR_CB_ID :
909 case HAL_UART_ABORT_COMPLETE_CB_ID :
913 case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID :
917 case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID :
921 case HAL_UART_MSPINIT_CB_ID :
925 case HAL_UART_MSPDEINIT_CB_ID :
931 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
942 case HAL_UART_MSPINIT_CB_ID :
946 case HAL_UART_MSPDEINIT_CB_ID :
952 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
962 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
982 if (pCallback == NULL)
984 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
994 huart->RxEventCallback = pCallback;
998 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
1028 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
1137 const uint8_t *pdata8bits;
1138 const uint16_t *pdata16bits;
1139 uint32_t tickstart = 0U;
1144 if ((pData == NULL) || (Size == 0U))
1162 pdata16bits = (
const uint16_t *) pData;
1178 if (pdata8bits == NULL)
1180 huart->
Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU);
1185 huart->
Instance->DR = (uint8_t)(*pdata8bits & 0xFFU);
1223 uint8_t *pdata8bits;
1224 uint16_t *pdata16bits;
1225 uint32_t tickstart = 0U;
1230 if ((pData == NULL) || (Size == 0U))
1249 pdata16bits = (uint16_t *) pData;
1266 if (pdata8bits == NULL)
1268 *pdata16bits = (uint16_t)(huart->
Instance->DR & 0x01FF);
1275 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x00FF);
1279 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x007F);
1313 if ((pData == NULL) || (Size == 0U))
1352 if ((pData == NULL) || (Size == 0U))
1381 const uint32_t *tmp;
1386 if ((pData == NULL) || (Size == 0U))
1411 tmp = (
const uint32_t *)&pData;
1419 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1446 if ((pData == NULL) || (Size == 0U))
1470 uint32_t dmarequest = 0x00U;
1476 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1483 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
1484 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1487 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1505 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1516 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
1518 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1521 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1535 uint32_t dmarequest = 0x00U;
1546 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1549 if (huart->
hdmatx != NULL)
1560 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1563 if (huart->
hdmarx != NULL)
1591 uint8_t *pdata8bits;
1592 uint16_t *pdata16bits;
1598 if ((pData == NULL) || (Size == 0U))
1618 pdata16bits = (uint16_t *) pData;
1652 if (pdata8bits == NULL)
1654 *pdata16bits = (uint16_t)(huart->
Instance->DR & (uint16_t)0x01FF);
1661 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x00FF);
1665 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x007F);
1678 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
1720 if ((pData == NULL) || (Size == 0U))
1737 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
1780 if ((pData == NULL) || (Size == 0U))
1797 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
1862 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1863 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1868 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_IDLEIE));
1874 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1877 if (huart->
hdmatx != NULL)
1899 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1902 if (huart->
hdmarx != NULL)
1951 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1956 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1959 if (huart->
hdmatx != NULL)
2002 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2003 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
2008 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_IDLEIE));
2014 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
2017 if (huart->
hdmarx != NULL)
2062 uint32_t AbortCplt = 0x01U;
2065 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
2066 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
2071 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_IDLEIE));
2077 if (huart->
hdmatx != NULL)
2091 if (huart->
hdmarx != NULL)
2109 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
2112 if (huart->
hdmatx != NULL)
2132 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
2135 if (huart->
hdmarx != NULL)
2154 if (AbortCplt == 0x01U)
2169#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2171 huart->AbortCpltCallback(huart);
2198 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
2203 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
2206 if (huart->
hdmatx != NULL)
2228#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2230 huart->AbortTransmitCpltCallback(huart);
2246#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2248 huart->AbortTransmitCpltCallback(huart);
2275 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2276 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
2281 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_IDLEIE));
2287 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
2290 if (huart->
hdmarx != NULL)
2313#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2315 huart->AbortReceiveCpltCallback(huart);
2332#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2334 huart->AbortReceiveCpltCallback(huart);
2352 uint32_t isrflags = READ_REG(huart->
Instance->SR);
2353 uint32_t cr1its = READ_REG(huart->
Instance->CR1);
2354 uint32_t cr3its = READ_REG(huart->
Instance->CR3);
2355 uint32_t errorflags = 0x00U;
2356 uint32_t dmarequest = 0x00U;
2359 errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
2360 if (errorflags == RESET)
2363 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
2371 if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET)
2372 || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
2375 if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
2381 if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
2387 if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
2393 if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET)
2394 || ((cr3its & USART_CR3_EIE) != RESET)))
2403 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
2421 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
2424 if (huart->
hdmarx != NULL)
2438#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2440 huart->ErrorCallback(huart);
2450#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2452 huart->ErrorCallback(huart);
2463#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2465 huart->ErrorCallback(huart);
2480 && ((isrflags & USART_SR_IDLE) != 0U)
2481 && ((cr1its & USART_SR_IDLE) != 0U))
2493 if ((nb_remaining_rx_data > 0U)
2494 && (nb_remaining_rx_data < huart->RxXferSize))
2503 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
2504 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
2508 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
2514 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
2524#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2541 && (nb_rx_data > 0U))
2544 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2547 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
2553 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
2559#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2561 huart->RxEventCallback(huart, nb_rx_data);
2572 if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
2579 if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
2764 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_SBK);
2791 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_RWU);
2819 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_RWU);
2838 uint32_t tmpreg = 0x00U;
2849 tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE));
2852 tmpreg |= (uint32_t)USART_CR1_TE;
2855 WRITE_REG(huart->
Instance->CR1, (uint32_t)tmpreg);
2873 uint32_t tmpreg = 0x00U;
2884 tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE));
2887 tmpreg |= (uint32_t)USART_CR1_RE;
2890 WRITE_REG(huart->
Instance->CR1, (uint32_t)tmpreg);
2930 uint32_t temp1 = 0x00U, temp2 = 0x00U;
2965#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
2992 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2998 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
3001 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3007#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3009 huart->TxCpltCallback(huart);
3027#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3029 huart->TxHalfCpltCallback(huart);
3047 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
3052 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
3053 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
3057 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
3065 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
3077#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3079 huart->RxEventCallback(huart, huart->
RxXferSize);
3088#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3090 huart->RxCpltCallback(huart);
3116#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3118 huart->RxEventCallback(huart, huart->
RxXferSize / 2U);
3127#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3129 huart->RxHalfCpltCallback(huart);
3145 uint32_t dmarequest = 0x00U;
3165#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3167 huart->ErrorCallback(huart);
3186 uint32_t Tickstart, uint32_t Timeout)
3194 if (((
HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
3294 tmp = (uint32_t *)&pData;
3303 ATOMIC_SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
3307 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_EIE);
3311 ATOMIC_SET_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
3324 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
3338 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
3339 ATOMIC_CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE);
3344 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
3365#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3367 huart->ErrorCallback(huart);
3390 if (huart->
hdmarx != NULL)
3411#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3413 huart->AbortCpltCallback(huart);
3436 if (huart->
hdmatx != NULL)
3457#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3459 huart->AbortCpltCallback(huart);
3485#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3487 huart->AbortTransmitCpltCallback(huart);
3514#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3516 huart->AbortReceiveCpltCallback(huart);
3531 const uint16_t *tmp;
3539 huart->
Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
3577#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3579 huart->TxCpltCallback(huart);
3596 uint8_t *pdata8bits;
3597 uint16_t *pdata16bits;
3605 pdata16bits = (uint16_t *) huart->
pRxBuffPtr;
3606 *pdata16bits = (uint16_t)(huart->
Instance->DR & (uint16_t)0x01FF);
3616 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x00FF);
3620 *pdata8bits = (uint8_t)(huart->
Instance->DR & (uint8_t)0x007F);
3650 ATOMIC_CLEAR_BIT(huart->
Instance->CR1, USART_CR1_IDLEIE);
3659#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3661 huart->RxEventCallback(huart, huart->
RxXferSize);
3670#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
3672 huart->RxCpltCallback(huart);
3720 (uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8),
3728#if defined(USART6) && defined(UART9) && defined(UART10)
3733#elif defined(USART6)
#define HAL_DMA_ERROR_TIMEOUT
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
Return the DMA error code.
#define __HAL_DMA_GET_COUNTER(__HANDLE__)
Returns the number of remaining data units in the current DMAy Streamx transfer.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
#define HAL_UART_ERROR_NONE
#define HAL_UART_ERROR_NE
#define HAL_UART_ERROR_DMA
#define HAL_UART_ERROR_PE
#define HAL_UART_ERROR_ORE
#define HAL_UART_ERROR_FE
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.
#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__)
Clears the UART IDLE pending flag.
#define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__)
Checks whether the specified UART flag is set or not.
#define __HAL_UART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the specified UART interrupt.
#define __HAL_UART_ENABLE(__HANDLE__)
Enable UART.
#define __HAL_UART_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clears the specified UART pending flag.
#define __HAL_UART_CLEAR_OREFLAG(__HANDLE__)
Clears the UART ORE pending flag.
#define __HAL_UART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified UART interrupt.
#define __HAL_UART_DISABLE(__HANDLE__)
Disable UART.
uint32_t HAL_UART_RxEventTypeTypeDef
HAL UART Rx Event type definition.
HAL_UART_StateTypeDef
HAL UART State structures definition.
#define UART_HWCONTROL_NONE
#define UART_OVERSAMPLING_8
static void UART_SetConfig(UART_HandleTypeDef *huart)
Configures the UART peripheral.
static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA UART communication abort callback, when initiated by HAL services on Error (To be called at end o...
static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
DMA UART receive process half complete callback.
HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Start Receive operation in DMA mode.
static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Tx communication abort callback, when initiated by user by a call to HAL_UART_AbortTransmit_...
HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Start Receive operation in interrupt mode.
static void UART_EndTxTransfer(UART_HandleTypeDef *huart)
End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion).
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Tx communication abort callback, when initiated by user (To be called at end of DMA Tx Abort...
static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart)
Receives an amount of data in non blocking mode.
static void UART_DMAError(DMA_HandleTypeDef *hdma)
DMA UART communication error callback.
static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
End ongoing Rx transfer on UART peripheral (following error detection or Reception completion).
static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart)
Wraps up transmission in non blocking mode.
static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
This function handles UART Communication Timeout. It waits until a flag is no longer in the specified...
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Rx communication abort callback, when initiated by user (To be called at end of DMA Rx Abort...
static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
Initialize the callbacks to their default values.
static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Rx communication abort callback, when initiated by user by a call to HAL_UART_AbortReceive_I...
static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart)
Sends an amount of data in non blocking mode.
static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
DMA UART transmit process half complete callback.
static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
DMA UART receive process complete callback.
#define IS_UART_LIN_WORD_LENGTH(LENGTH)
#define IS_UART_ADDRESS(ADDRESS)
#define IS_UART_STOPBITS(STOPBITS)
#define IS_UART_HARDWARE_FLOW_CONTROL(CONTROL)
#define IS_UART_WORD_LENGTH(LENGTH)
#define IS_UART_BAUDRATE(BAUDRATE)
#define IS_UART_LIN_BREAK_DETECT_LENGTH(LENGTH)
#define IS_UART_WAKEUPMETHOD(WAKEUP)
#define IS_UART_MODE(MODE)
#define IS_UART_OVERSAMPLING(SAMPLING)
#define IS_UART_LIN_OVERSAMPLING(SAMPLING)
#define UART_BRR_SAMPLING8(_PCLK_, _BAUD_)
#define UART_BRR_SAMPLING16(_PCLK_, _BAUD_)
#define IS_UART_PARITY(PARITY)
#define HAL_UART_RECEPTION_TOIDLE
#define HAL_UART_RECEPTION_STANDARD
#define HAL_UART_RXEVENT_HT
#define HAL_UART_RXEVENT_IDLE
#define HAL_UART_RXEVENT_TC
#define UART_WORDLENGTH_8B
#define UART_WORDLENGTH_9B
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
#define HAL_IS_BIT_SET(REG, BIT)
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
DMA_Stream_TypeDef * Instance
UART handle Structure definition.
__IO HAL_UART_RxEventTypeTypeDef RxEventType
__IO uint16_t RxXferCount
__IO HAL_UART_StateTypeDef gState
__IO HAL_UART_StateTypeDef RxState
__IO uint16_t TxXferCount
DMA_HandleTypeDef * hdmarx
const uint8_t * pTxBuffPtr
__IO HAL_UART_RxTypeTypeDef ReceptionType
DMA_HandleTypeDef * hdmatx