Lines Matching refs:huart
200 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
201 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
212 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
213 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
214 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
215 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
216 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
217 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
218 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
219 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
220 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
307 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
310 if (huart == NULL) in HAL_UART_Init()
315 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
318 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
323 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_Init()
326 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
329 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
332 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
334 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
336 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
340 huart->MspInitCallback(huart); in HAL_UART_Init()
343 HAL_UART_MspInit(huart); in HAL_UART_Init()
347 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
349 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
352 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
357 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
359 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
365 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
366 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
368 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
371 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
380 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
383 if (huart == NULL) in HAL_HalfDuplex_Init()
389 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
391 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
394 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
397 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
399 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
401 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
405 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
408 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
412 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
414 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
417 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
422 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
424 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
430 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
431 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
434 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
436 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
439 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
453 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
456 if (huart == NULL) in HAL_LIN_Init()
462 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
467 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
472 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
477 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
480 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
483 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
485 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
487 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
491 huart->MspInitCallback(huart); in HAL_LIN_Init()
494 HAL_UART_MspInit(huart); in HAL_LIN_Init()
498 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
500 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
503 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
508 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
510 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
516 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
517 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
520 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
523 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
525 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
528 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
550 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
553 if (huart == NULL) in HAL_MultiProcessor_Init()
561 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
564 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
567 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
569 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
571 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
575 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
578 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
582 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
584 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
587 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
592 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
594 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
600 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
601 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
606 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
610 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
612 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
615 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
624 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
627 if (huart == NULL) in HAL_UART_DeInit()
633 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_DeInit()
635 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
637 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
639 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
640 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
641 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
644 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
646 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
649 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
652 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
655 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
656 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
657 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
658 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
659 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
661 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
671 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
674 UNUSED(huart); in HAL_UART_MspInit()
686 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
689 UNUSED(huart); in HAL_UART_MspDeInit()
722 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
729 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
734 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
739 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
743 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
747 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
751 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
755 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
759 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
763 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
767 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
771 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
775 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
779 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
783 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
787 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
797 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
802 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
806 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
810 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
818 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
850 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
854 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
859 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
863 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
867 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
871 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
875 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
879 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
883 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
888 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
893 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
897 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
901 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
905 …huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
909 …huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
913 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
919 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
924 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
928 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
932 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
955 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
961 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
967 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
969 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
971 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
975 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
981 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
992 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
997 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
999 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1001 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1005 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1011 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1126 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1133 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1144 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1153 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1154 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1159 huart->TxXferSize = Size; in HAL_UART_Transmit()
1160 huart->TxXferCount = Size; in HAL_UART_Transmit()
1163 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1174 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1176 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1182 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1187 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1190 huart->TxXferCount--; in HAL_UART_Transmit()
1193 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1199 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1230 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1238 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1249 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1258 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1259 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1260 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1265 huart->RxXferSize = Size; in HAL_UART_Receive()
1266 huart->RxXferCount = Size; in HAL_UART_Receive()
1269 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1270 uhMask = huart->Mask; in HAL_UART_Receive()
1273 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1285 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1287 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1293 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1298 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1301 huart->RxXferCount--; in HAL_UART_Receive()
1305 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1331 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1334 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1345 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1354 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1355 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1356 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1357 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1359 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1360 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1363 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1366 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1368 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1372 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1376 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1381 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1383 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1387 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1391 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1418 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1421 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1432 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1442 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1444 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1447 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1450 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1454 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1478 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1481 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1492 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1501 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1502 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1503 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1505 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1506 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1508 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1511 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1514 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1517 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1520 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1523 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1526 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1529 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1535 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1539 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1567 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1570 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1581 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_DMA()
1591 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1593 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1596 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1599 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1603 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1616 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1618 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1619 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1621 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1625 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1627 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1631 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1632 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1635 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1646 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1648 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1651 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1653 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1656 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1659 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1661 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1663 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1666 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1677 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1686 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1687 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1690 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1693 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1696 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1698 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1700 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1703 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1710 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1714 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1717 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1720 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1722 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1724 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1727 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1734 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1752 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1755 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1757 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1760 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1762 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1766 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1769 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1772 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1776 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1778 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1780 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1783 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1792 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1795 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1798 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1802 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1804 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1806 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1809 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1818 huart->TxXferCount = 0U; in HAL_UART_Abort()
1819 huart->RxXferCount = 0U; in HAL_UART_Abort()
1822 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1825 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1827 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1831 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1834 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1835 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1836 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1838 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1855 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1858 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1859 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1862 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1865 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1868 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1872 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1874 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1876 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1879 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1888 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1891 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1893 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1897 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1914 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1917 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1918 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1921 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1923 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1927 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1930 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1933 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1937 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1939 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1941 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1944 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1953 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1956 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1959 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1962 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1963 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1982 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1987 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1989 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1992 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1994 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2000 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2004 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2006 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2010 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2014 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2018 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2020 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2024 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2029 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2032 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2035 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2041 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2043 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2053 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2056 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2059 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2065 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2067 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2081 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2082 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2085 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2086 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2089 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2092 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2095 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2097 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2101 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2104 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2105 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2106 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2111 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2114 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2135 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2138 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2139 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2142 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2145 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2148 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2152 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2155 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2158 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2164 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2167 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2170 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2175 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2178 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2185 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2188 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2191 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2193 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2197 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2202 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2205 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2226 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2229 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2230 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2233 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2235 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2239 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2242 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2245 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2249 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2252 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2255 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2261 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2264 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2267 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2270 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2273 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2274 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2279 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2282 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2289 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2292 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2295 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2298 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2299 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2304 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2307 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2319 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2321 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2322 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2323 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2337 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2339 huart->RxISR(huart); in HAL_UART_IRQHandler()
2353 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2355 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2361 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2363 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2369 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2371 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2379 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2381 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2387 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2389 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2393 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2400 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2402 huart->RxISR(huart); in HAL_UART_IRQHandler()
2411 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2412 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2418 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2421 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2424 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2427 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2431 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2434 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2437 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2445 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2448 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2458 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2461 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2471 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2474 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2476 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2485 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2489 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2492 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2498 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2500 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2503 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2506 if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2509 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2510 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2514 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2517 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2518 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2520 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2523 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2528 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2532 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2535 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2545 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2546 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2550 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2553 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2556 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2557 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2560 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2562 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2566 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2570 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2573 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2583 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2590 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2593 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2603 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2605 huart->TxISR(huart); in HAL_UART_IRQHandler()
2613 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2622 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2625 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2635 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2638 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2649 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2652 UNUSED(huart); in HAL_UART_TxCpltCallback()
2664 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2667 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2679 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2682 UNUSED(huart); in HAL_UART_RxCpltCallback()
2694 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2697 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2709 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2712 UNUSED(huart); in HAL_UART_ErrorCallback()
2724 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2727 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2739 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2742 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2754 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2757 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2771 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2774 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2819 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2821 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2824 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2834 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2836 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2838 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2841 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2843 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2846 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2848 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2851 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2872 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2874 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2876 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2879 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2881 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2884 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2886 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2889 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2910 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2912 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2914 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2917 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2919 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2921 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2930 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2932 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2934 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2937 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2939 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2941 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2950 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2952 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2960 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2962 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2963 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2966 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2969 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2971 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2973 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2983 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2985 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2986 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2989 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2992 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2994 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2996 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3007 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3010 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3012 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3014 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3017 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3019 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3021 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3052 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3056 temp1 = huart->gState; in HAL_UART_GetState()
3057 temp2 = huart->RxState; in HAL_UART_GetState()
3068 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3070 return huart->ErrorCode; in HAL_UART_GetError()
3090 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3093 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3094 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3095 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3096 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3097 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3098 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3099 …huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3100 …huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3101 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3102 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3103 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3104 …huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3114 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3125 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3126 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3127 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3129 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3133 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3134 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3137 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3138 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3139 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3140 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3141 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3150 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3151 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3156 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3164 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3166 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3168 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3170 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3175 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3178 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3181 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3208 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3211 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3212 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3220 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3223 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3234 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3262 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3267 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3303 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3306 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3316 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3317 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3320 huart->RxISR = NULL; in UART_SetConfig()
3321 huart->TxISR = NULL; in UART_SetConfig()
3331 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3334 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3337 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3339 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3340 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3344 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3346 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3347 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3351 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3353 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3354 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3358 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3360 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3361 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3365 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3367 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3368 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3372 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3374 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3375 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3379 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3381 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3382 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3383 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3385 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3387 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3388 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3393 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3395 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3396 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3405 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3410 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3416 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3419 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3427 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3430 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3438 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3439 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3440 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3441 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3443 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3458 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3462 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3471 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in UART_WaitOnFlagUntilTimeout()
3473 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_WaitOnFlagUntilTimeout()
3475 huart->gState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3476 huart->RxState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3478 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3483 if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) in UART_WaitOnFlagUntilTimeout()
3485 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3488 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3492 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in UART_WaitOnFlagUntilTimeout()
3494 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_WaitOnFlagUntilTimeout()
3496 huart->gState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3497 huart->RxState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3498 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3501 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3522 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3524 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3525 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3526 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3527 huart->RxISR = NULL; in UART_Start_Receive_IT()
3530 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3532 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3533 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3536 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3539 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3542 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3544 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3548 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3552 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3554 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3556 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3561 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3563 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3567 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3571 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3573 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3577 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3594 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3596 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3597 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3599 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3600 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3602 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3605 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3608 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3611 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3614 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3617 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3620 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3623 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3630 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3632 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3636 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3640 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3651 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3654 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3655 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3658 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3667 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3670 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3671 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3674 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3676 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3680 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3681 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3684 huart->RxISR = NULL; in UART_EndRxTransfer()
3695 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3700 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3704 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3707 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3714 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3717 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3729 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3733 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3736 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3747 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3752 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3755 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3756 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3760 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3763 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3766 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3768 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3774 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3778 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3782 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3785 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3793 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3796 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3808 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3812 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3816 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3820 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3823 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3831 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3834 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3846 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3848 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3849 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3852 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3855 huart->TxXferCount = 0U; in UART_DMAError()
3856 UART_EndTxTransfer(huart); in UART_DMAError()
3860 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3863 huart->RxXferCount = 0U; in UART_DMAError()
3864 UART_EndRxTransfer(huart); in UART_DMAError()
3867 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3871 huart->ErrorCallback(huart); in UART_DMAError()
3874 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3886 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3887 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3888 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3892 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3895 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3909 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3911 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3914 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3916 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3923 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3924 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3927 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3930 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3933 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3935 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3939 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3940 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3941 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3946 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3949 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3964 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3966 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3969 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3971 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3978 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3979 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3982 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3985 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3988 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3991 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3992 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3993 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3998 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4001 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4016 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4018 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4021 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4023 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4027 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4032 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4035 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4049 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4051 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4054 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4057 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4060 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4061 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4066 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4069 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4080 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4083 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4085 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4088 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4091 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4095 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4096 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4097 huart->TxXferCount--; in UART_TxISR_8BIT()
4109 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4114 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4116 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4119 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4122 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4126 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4127 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4128 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4129 huart->TxXferCount--; in UART_TxISR_16BIT()
4141 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4146 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4148 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4150 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4153 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4156 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4160 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4162 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4163 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4164 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4181 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4187 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4189 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4191 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4194 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4197 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4201 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4203 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4204 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4205 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4206 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4222 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4225 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4228 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4231 huart->TxISR = NULL; in UART_EndTransmit_IT()
4235 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4238 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4247 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4249 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4253 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4255 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4256 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4257 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4258 huart->RxXferCount--; in UART_RxISR_8BIT()
4260 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4263 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4266 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4269 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4272 huart->RxISR = NULL; in UART_RxISR_8BIT()
4275 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4277 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4280 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4283 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4289 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4292 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4295 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4297 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4300 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4305 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4308 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4316 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4319 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4327 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4338 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4341 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4345 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4347 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4348 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4350 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4351 huart->RxXferCount--; in UART_RxISR_16BIT()
4353 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4356 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4359 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4362 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4365 huart->RxISR = NULL; in UART_RxISR_16BIT()
4368 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4370 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4373 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4376 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4382 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4385 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4388 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4390 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4393 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4398 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4401 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4409 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4412 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4420 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4431 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4433 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4437 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4438 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4439 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4442 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4444 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4447 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4448 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4449 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4450 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4451 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4459 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4461 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4467 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4469 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4475 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4477 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4481 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4487 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4490 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4492 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4496 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4499 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4503 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4506 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4509 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4512 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4514 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4517 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4520 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4526 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4529 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4532 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4534 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4537 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4542 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4545 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4553 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4556 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4566 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4567 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4570 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4573 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4576 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4582 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4593 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4596 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4600 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4601 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4602 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4605 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4607 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4610 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4611 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4613 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4614 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4615 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4623 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4625 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4631 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4633 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4639 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4641 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4645 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4651 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4654 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4656 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4660 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4663 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4667 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4670 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4673 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4676 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4678 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4681 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4684 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4690 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4693 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4696 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4698 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4701 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4706 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4709 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4717 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4720 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4730 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4731 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4734 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4737 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4740 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4746 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()