Lines Matching refs:huart
200 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
201 static void UART_EndTxTransfer(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()
353 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
355 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
359 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
367 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
368 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
370 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
373 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
382 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
385 if (huart == NULL) in HAL_HalfDuplex_Init()
391 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
393 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
396 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
399 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
401 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
403 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
407 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
410 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
414 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
416 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
420 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
422 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
426 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
434 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
435 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
438 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
440 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
443 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
457 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
460 if (huart == NULL) in HAL_LIN_Init()
466 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
471 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
476 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
481 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
484 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
487 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
489 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
491 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
495 huart->MspInitCallback(huart); in HAL_LIN_Init()
498 HAL_UART_MspInit(huart); in HAL_LIN_Init()
502 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
504 __HAL_UART_DISABLE(huart); 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()
514 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
522 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
523 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
526 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
529 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
531 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
534 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
556 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
559 if (huart == NULL) in HAL_MultiProcessor_Init()
567 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
570 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
573 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
575 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
577 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
581 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
584 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
588 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
590 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
594 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
596 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
600 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
608 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
609 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
614 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
618 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
620 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
623 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
632 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
635 if (huart == NULL) in HAL_UART_DeInit()
641 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_DeInit()
643 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
645 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
647 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
648 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
649 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
652 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
654 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
657 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
660 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
663 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
664 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
665 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
666 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
667 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
669 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
679 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
682 UNUSED(huart); in HAL_UART_MspInit()
694 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
697 UNUSED(huart); in HAL_UART_MspDeInit()
730 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
737 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
742 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
747 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
751 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
755 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
759 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
763 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
767 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
771 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
775 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
779 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
783 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
787 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
795 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
799 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
805 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
810 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
814 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
818 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
826 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
858 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
862 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
867 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
871 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
875 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
879 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
883 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
887 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
891 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
896 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
901 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
905 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
909 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
913 …huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
917 …huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
921 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
927 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
932 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
936 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
948 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
963 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
969 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
974 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
976 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
980 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
994 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
998 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1000 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1004 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1120 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1127 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1134 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1135 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1140 huart->TxXferSize = Size; in HAL_UART_Transmit()
1141 huart->TxXferCount = Size; in HAL_UART_Transmit()
1144 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1155 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1157 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1160 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1166 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1171 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1174 huart->TxXferCount--; in HAL_UART_Transmit()
1177 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1179 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1185 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1210 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1218 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1225 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1226 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1227 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1232 huart->RxXferSize = Size; in HAL_UART_Receive()
1233 huart->RxXferCount = Size; in HAL_UART_Receive()
1236 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1237 uhMask = huart->Mask; in HAL_UART_Receive()
1240 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1252 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1254 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1256 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1262 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1267 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1270 huart->RxXferCount--; in HAL_UART_Receive()
1274 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1294 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1297 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1304 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1305 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1306 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1307 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1309 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1310 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1313 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1316 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1318 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1322 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1326 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1331 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1333 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1337 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1341 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1362 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1365 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1373 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1375 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1378 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1381 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1385 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1403 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1406 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1413 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1414 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1415 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1417 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1418 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1420 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1423 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1426 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1429 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1432 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1435 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1438 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1441 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1447 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1451 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1473 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1476 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1484 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1486 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1489 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1492 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1496 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1509 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1511 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1512 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1514 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1518 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1520 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1524 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1525 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1528 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1539 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1541 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1544 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1546 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1549 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1552 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1554 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1556 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1559 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1570 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1579 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1580 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1583 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1586 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1589 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1591 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1593 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1596 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1603 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1607 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1610 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1613 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1615 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1617 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1620 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1627 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1645 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1648 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1650 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1653 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1655 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1659 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1662 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1665 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1669 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1671 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1673 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1676 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1685 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1688 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1691 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1695 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1697 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1699 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1702 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1711 huart->TxXferCount = 0U; in HAL_UART_Abort()
1712 huart->RxXferCount = 0U; in HAL_UART_Abort()
1715 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1718 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1720 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1724 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1727 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1728 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1729 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1731 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1748 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1751 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1752 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1755 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1758 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1761 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1765 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1767 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1769 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1772 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1781 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1784 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1786 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1790 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1807 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1810 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1811 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1814 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1816 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1820 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1823 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1826 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1830 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1832 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1834 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1837 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1846 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1849 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1852 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1855 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1856 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1875 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1880 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1882 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1885 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1887 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1893 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1897 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1899 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1903 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1907 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1911 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1913 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
1917 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1922 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1925 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
1928 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1934 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
1936 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1946 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1949 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
1952 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1958 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
1960 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1974 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
1975 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
1978 huart->RxISR = NULL; in HAL_UART_Abort_IT()
1979 huart->TxISR = NULL; in HAL_UART_Abort_IT()
1982 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
1985 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
1988 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
1990 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
1994 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
1997 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
1998 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
1999 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2004 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2007 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2028 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2031 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2032 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2035 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2038 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2041 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2045 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2048 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2051 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2057 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2060 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2063 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2068 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2071 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2078 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2081 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2084 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2086 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2090 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2095 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2098 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2119 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2122 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2123 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2126 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2128 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2132 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2135 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2138 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2142 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2145 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2148 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2154 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2157 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2160 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2163 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2166 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2167 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2172 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2175 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2182 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2185 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2188 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2191 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2192 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2197 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2200 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2212 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2214 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2215 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2216 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2230 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2232 huart->RxISR(huart); in HAL_UART_IRQHandler()
2246 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2248 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2254 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2256 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2262 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2264 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2272 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2274 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2280 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2282 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2286 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2293 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2295 huart->RxISR(huart); in HAL_UART_IRQHandler()
2304 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2305 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2311 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2314 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2317 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2320 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2324 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2327 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2330 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2338 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2341 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2351 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2354 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2364 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2367 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2369 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2378 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2382 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2385 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2391 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2393 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2396 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2399 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2402 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2403 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2407 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2410 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2411 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2413 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2416 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2421 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2425 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2428 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2435 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2437 if (huart->hdmarx->Init.Mode == DMA_CIRCULAR) in HAL_UART_IRQHandler()
2441 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2445 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2448 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2460 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2461 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2465 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2468 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2471 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2472 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2475 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2477 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2481 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2485 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2488 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2498 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2505 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2508 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2518 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2520 huart->TxISR(huart); in HAL_UART_IRQHandler()
2528 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2537 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2540 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2550 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2553 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2564 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2567 UNUSED(huart); in HAL_UART_TxCpltCallback()
2579 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2582 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2594 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2597 UNUSED(huart); in HAL_UART_RxCpltCallback()
2609 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2612 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2624 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2627 UNUSED(huart); in HAL_UART_ErrorCallback()
2639 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2642 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2654 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2657 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2669 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2672 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2686 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2689 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2734 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2736 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2739 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2749 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2751 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2753 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2756 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2758 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2761 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2763 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2766 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2787 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2789 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2791 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2794 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2796 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2799 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2801 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2804 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2825 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2827 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2829 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2832 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2834 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2836 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2845 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2847 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2849 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2852 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2854 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2856 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2865 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2867 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2875 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2877 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2878 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2881 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2884 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2886 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2888 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2898 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2900 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2901 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2904 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2907 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2909 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2911 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2922 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2925 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2927 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2929 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2932 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
2934 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2936 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2967 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2971 temp1 = huart->gState; in HAL_UART_GetState()
2972 temp2 = huart->RxState; in HAL_UART_GetState()
2983 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2985 return huart->ErrorCode; in HAL_UART_GetError()
3005 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3008 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3009 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3010 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3011 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3012 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3013 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3014 …huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3015 …huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3016 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3017 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3018 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3019 …huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3029 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3042 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3043 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3044 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3046 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3050 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3051 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3054 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3055 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3056 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3057 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3058 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3067 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3068 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3073 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3081 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3083 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3085 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3087 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3092 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3095 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3098 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3140 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3143 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3144 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3152 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3155 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3166 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3209 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3214 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3265 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3268 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3278 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3279 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3282 huart->RxISR = NULL; in UART_SetConfig()
3283 huart->TxISR = NULL; in UART_SetConfig()
3293 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3296 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3299 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3301 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3302 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3306 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3308 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3309 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3313 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3315 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3316 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3320 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3322 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3323 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3327 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3329 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3330 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3334 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3336 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3337 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3341 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3343 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3344 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3345 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3347 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3349 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3350 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3355 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3357 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3358 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3367 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3372 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3378 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3381 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3384 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3386 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3388 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3396 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3399 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3403 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3404 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3406 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3408 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3416 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3417 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3418 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3419 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3421 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3436 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3440 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3451 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3453 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3456 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3461 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3463 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3466 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3470 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3473 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3478 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3480 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3483 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3504 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3506 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3507 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3508 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3509 huart->RxISR = NULL; in UART_Start_Receive_IT()
3512 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3514 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3515 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3518 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3521 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3524 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3526 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3530 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3534 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3536 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3538 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3543 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3545 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3549 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3553 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3555 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3559 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3576 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3578 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3579 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3581 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3582 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3584 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3587 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3590 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3593 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3596 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3599 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3602 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3605 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3612 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3614 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3618 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3622 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3633 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3636 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3637 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3640 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3649 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3652 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3653 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3656 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3658 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3662 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3663 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3666 huart->RxISR = NULL; in UART_EndRxTransfer()
3677 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3682 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3686 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3689 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3696 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3699 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3711 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3715 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3718 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3729 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3734 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3737 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3738 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3742 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3745 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3748 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3750 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3756 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3760 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3764 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3767 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3775 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3778 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3790 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3794 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3798 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3802 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3805 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3813 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3816 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3828 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3830 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3831 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3834 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3837 huart->TxXferCount = 0U; in UART_DMAError()
3838 UART_EndTxTransfer(huart); in UART_DMAError()
3842 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3845 huart->RxXferCount = 0U; in UART_DMAError()
3846 UART_EndRxTransfer(huart); in UART_DMAError()
3849 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3853 huart->ErrorCallback(huart); in UART_DMAError()
3856 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3868 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3869 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3873 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3876 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3890 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3892 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3895 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3897 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3904 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3905 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3908 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3911 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3914 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3916 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3920 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3921 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3922 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3927 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3930 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3945 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3947 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3950 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3952 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3959 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3960 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3963 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3966 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3969 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3972 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3973 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3974 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3979 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3982 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3997 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3999 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4002 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4004 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4008 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4013 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4016 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4030 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4032 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4035 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4038 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4041 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4042 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4047 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4050 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4061 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4064 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4066 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4069 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4072 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4076 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4077 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4078 huart->TxXferCount--; in UART_TxISR_8BIT()
4090 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4095 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4097 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4100 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4103 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4107 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4108 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4109 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4110 huart->TxXferCount--; in UART_TxISR_16BIT()
4122 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4127 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4129 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4131 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4134 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4137 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4141 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4143 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4144 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4145 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4162 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4168 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4170 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4172 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4175 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4178 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4182 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4184 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4185 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4186 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4187 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4203 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4206 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4209 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4212 huart->TxISR = NULL; in UART_EndTransmit_IT()
4216 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4219 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4228 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4230 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4234 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4236 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4237 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4238 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4239 huart->RxXferCount--; in UART_RxISR_8BIT()
4241 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4244 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4247 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4250 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4253 huart->RxISR = NULL; in UART_RxISR_8BIT()
4256 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4258 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4261 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4264 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4270 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4273 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4276 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4278 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4281 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4286 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4289 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4297 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4300 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4308 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4319 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4322 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4326 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4328 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4329 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4331 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4332 huart->RxXferCount--; in UART_RxISR_16BIT()
4334 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4337 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4340 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4343 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4346 huart->RxISR = NULL; in UART_RxISR_16BIT()
4349 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4351 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4354 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4357 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4363 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4366 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4369 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4371 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4374 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4379 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4382 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4390 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4393 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4401 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4412 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4414 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4418 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4419 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4420 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4423 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4425 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4428 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4429 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4430 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4431 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4432 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4440 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4442 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4448 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4450 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4456 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4458 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4462 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4468 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4471 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4473 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4477 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4480 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4484 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4487 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4490 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4493 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4495 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4498 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4501 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4507 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4510 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4513 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4515 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4518 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4523 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4526 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4534 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4537 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4548 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4549 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4552 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4555 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4558 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4564 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4575 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4578 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4582 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4583 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4584 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4587 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4589 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4592 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4593 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4595 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4596 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4597 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4605 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4607 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4613 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4615 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4621 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4623 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4627 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4633 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4636 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4638 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4642 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4645 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4649 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4652 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4655 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4658 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4660 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4663 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4666 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4672 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4675 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4678 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4680 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4683 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4688 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4691 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4699 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4702 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4713 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4714 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4717 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4720 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4723 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4729 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()