Lines Matching refs:huart

214 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
215 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
226 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
227 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
229 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
230 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
232 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
233 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
234 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
236 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
237 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
327 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
330 if (huart == NULL) in HAL_UART_Init()
335 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
338 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
343 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_Init()
346 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
349 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
352 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
354 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
356 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
360 huart->MspInitCallback(huart); in HAL_UART_Init()
363 HAL_UART_MspInit(huart); in HAL_UART_Init()
367 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
369 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
373 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
375 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
379 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
387 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
388 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
390 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
393 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
402 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
405 if (huart == NULL) in HAL_HalfDuplex_Init()
411 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
413 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
416 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
419 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
421 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
423 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
427 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
430 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
434 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
436 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
440 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
442 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
446 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
454 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
455 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
458 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
460 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
463 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
477 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
480 if (huart == NULL) in HAL_LIN_Init()
486 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
491 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
496 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
501 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
504 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
507 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
509 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
511 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
515 huart->MspInitCallback(huart); in HAL_LIN_Init()
518 HAL_UART_MspInit(huart); in HAL_LIN_Init()
522 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
524 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
528 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
530 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
534 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
542 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
543 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
546 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
549 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
551 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
554 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
576 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
579 if (huart == NULL) in HAL_MultiProcessor_Init()
587 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
590 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
593 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
595 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
597 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
601 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
604 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
608 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
610 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
614 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
616 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
620 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
628 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
629 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
634 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
638 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
640 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
643 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
652 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
655 if (huart == NULL) in HAL_UART_DeInit()
661 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_DeInit()
663 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
665 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
667 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
668 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
669 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
672 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
674 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
677 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
680 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
683 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
684 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
685 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
686 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
687 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
689 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
699 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
702 UNUSED(huart); in HAL_UART_MspInit()
714 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
717 UNUSED(huart); in HAL_UART_MspDeInit()
752 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
759 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
764 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
769 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
773 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
777 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
781 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
789 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
793 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
797 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
801 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
806 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
810 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
815 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
819 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
823 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
829 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
834 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
838 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
842 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
850 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
884 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
888 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
893huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
897huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
901huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
905huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
909huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
913huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
917 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
922 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
927huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
932huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
936huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
941huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
945huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
949 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
955 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
960 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
964 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
968 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
976 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
991 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
997 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1002 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
1004 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
1008 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1022 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1026 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1028 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1032 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1145 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1152 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1159 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1160 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1165 huart->TxXferSize = Size; in HAL_UART_Transmit()
1166 huart->TxXferCount = Size; in HAL_UART_Transmit()
1169 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1180 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1182 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1185 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1191 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1196 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1199 huart->TxXferCount--; in HAL_UART_Transmit()
1202 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1204 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1210 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1235 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1243 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1250 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1251 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1252 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1257 huart->RxXferSize = Size; in HAL_UART_Receive()
1258 huart->RxXferCount = Size; in HAL_UART_Receive()
1261 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1262 uhMask = huart->Mask; in HAL_UART_Receive()
1265 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1277 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1279 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1281 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1287 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1292 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1295 huart->RxXferCount--; in HAL_UART_Receive()
1299 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1319 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1322 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1329 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1330 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1331 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1332 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1334 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1335 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1339 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1342 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1344 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1348 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1352 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1357 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1359 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1363 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1367 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1371 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1373 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1377 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1381 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in HAL_UART_Transmit_IT()
1402 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1405 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1413 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1415 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1418 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1421 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1425 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1443 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1446 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1453 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1454 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1455 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1457 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1458 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1460 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1463 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1466 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1469 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1472 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1475 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1478 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1481 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1487 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1491 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1513 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1516 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1524 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1526 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1529 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1532 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1536 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1549 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1551 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1552 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1554 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1558 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1560 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1564 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1565 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1568 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1579 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1581 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1584 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1586 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1589 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1592 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1594 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1596 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1599 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1610 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1619 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1620 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1623 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1626 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1629 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1631 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1633 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1636 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1643 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1647 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1650 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1653 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1655 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1657 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1660 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1667 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1685 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1689 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1691 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1694 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1695 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1699 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1701 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1705 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1708 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1711 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1715 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1717 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1719 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1722 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1731 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1734 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1737 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1741 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1743 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1745 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1748 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1757 huart->TxXferCount = 0U; in HAL_UART_Abort()
1758 huart->RxXferCount = 0U; in HAL_UART_Abort()
1761 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1765 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1767 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1772 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1775 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1776 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1777 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1779 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1796 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1800 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1801 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1804 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1808 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1811 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1814 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1818 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1820 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1822 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1825 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1834 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1838 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1840 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1845 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1862 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1866 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1867 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1870 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1871 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1875 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1877 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1881 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1884 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1887 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1891 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1893 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1895 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1898 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1907 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1910 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1913 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1916 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1917 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1936 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1942 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1944 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1946 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
1947 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
1951 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1953 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1959 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1963 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1965 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1969 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1973 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1977 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1979 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
1983 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1988 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1991 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
1994 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2000 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2002 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2012 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2015 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2018 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2024 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2026 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2040 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2041 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2044 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2045 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2048 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2051 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2055 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2057 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2062 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2065 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2066 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2067 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2072 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2075 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2096 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2100 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2101 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2103 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2107 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2110 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2113 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2117 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2120 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2123 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2129 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2132 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2135 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2140 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2143 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2150 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2153 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2157 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2159 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2164 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2169 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2172 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2193 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2197 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2198 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2200 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2201 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2205 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2207 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2211 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2214 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2217 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2221 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2224 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2227 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2233 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2236 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2239 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2242 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2245 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2246 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2251 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2254 HAL_UART_AbortReceiveCpltCallback(huart); 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 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2271 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2276 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2279 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2291 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2293 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2294 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2295 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2314 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2316 huart->RxISR(huart); in HAL_UART_IRQHandler()
2336 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2338 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2344 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2346 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2352 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2354 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2368 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2370 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2376 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2378 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2382 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2394 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2396 huart->RxISR(huart); in HAL_UART_IRQHandler()
2405 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2406 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2412 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2415 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2418 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2421 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2425 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2428 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2431 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2439 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2442 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2452 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2455 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2465 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2468 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2470 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2479 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2483 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2486 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2492 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2494 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2497 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2500 if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2503 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2504 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2508 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2511 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2512 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2514 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2517 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2522 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2526 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2529 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2536 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2538 if (HAL_IS_BIT_SET(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2542 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2546 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2549 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2561 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2562 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2567 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2570 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2573 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2576 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2580 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2581 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2584 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2586 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2590 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2594 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2597 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2607 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2614 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2617 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2632 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2634 huart->TxISR(huart); in HAL_UART_IRQHandler()
2642 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2652 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2655 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2665 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2668 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2680 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2683 UNUSED(huart); in HAL_UART_TxCpltCallback()
2695 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2698 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2710 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2713 UNUSED(huart); in HAL_UART_RxCpltCallback()
2725 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2728 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2740 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2743 UNUSED(huart); in HAL_UART_ErrorCallback()
2755 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2758 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2770 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2773 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2785 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2788 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2802 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2805 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2850 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2852 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2855 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2865 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2867 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2869 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2872 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2874 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2877 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2879 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2882 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2903 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2905 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2907 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2910 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2912 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2915 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2917 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2920 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2941 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2943 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2945 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2948 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2950 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2952 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2961 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2963 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2965 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2968 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2970 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2972 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2981 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2983 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2991 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2993 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2994 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2997 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
3000 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
3002 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
3004 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3014 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
3016 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3017 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3020 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3023 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3025 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3027 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3038 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3041 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3043 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3045 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3048 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3050 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3052 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3083 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3087 temp1 = huart->gState; in HAL_UART_GetState()
3088 temp2 = huart->RxState; in HAL_UART_GetState()
3099 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3101 return huart->ErrorCode; in HAL_UART_GetError()
3121 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3124huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3125huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3126huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3127huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3128huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3129huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3130huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3131huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3132huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3134huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3135huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3137huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3147 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3160 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3161 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3162 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3164 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3168 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3169 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3172 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3173 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3174 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3175 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3177 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3187 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3188 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3193 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3201 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3203 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3205 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3207 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3213 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3217 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3220 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3248 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3251 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3252 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3260 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3263 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3274 if ((pclk < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3275 (pclk > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3281 usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3284 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3295 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3324 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3326 usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3332 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3369 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3371 usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3375 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3386 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3387 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3391 huart->RxISR = NULL; in UART_SetConfig()
3392 huart->TxISR = NULL; in UART_SetConfig()
3402 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3405 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3408 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3410 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3411 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3415 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3417 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3418 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3422 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3424 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3425 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3429 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3431 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3432 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3436 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3438 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3439 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3443 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3445 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3446 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3450 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3452 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3453 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3454 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3456 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3458 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3459 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3464 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3466 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3467 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3476 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3481 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3487 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3490 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3494 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3496 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); in UART_CheckIdleState()
3499 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3501 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3509 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3512 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3517 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3519 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3521 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3523 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3525 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3533 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3534 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3535 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3536 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3538 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3553 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3557 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3568 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3570 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3573 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3578 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3580 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3583 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3587 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3590 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3595 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3597 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3600 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3621 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3623 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3624 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3625 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3626 huart->RxISR = NULL; in UART_Start_Receive_IT()
3629 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3631 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3632 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3635 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3639 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3642 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3644 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3648 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3652 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3654 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3656 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3661 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3663 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3667 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3671 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3673 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3677 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3682 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3684 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3688 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3692 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3694 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3698 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3715 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3717 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3718 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3720 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3721 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3723 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3726 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3729 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3732 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3735 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3738 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3741 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3744 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3751 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3753 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3757 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3761 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3772 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3776 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3777 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3780 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3784 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3793 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3797 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3798 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3800 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3801 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3805 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3807 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3811 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3812 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3815 huart->RxISR = NULL; in UART_EndRxTransfer()
3826 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3831 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3835 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3838 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3845 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3848 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3860 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3864 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3867 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3878 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3883 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3886 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3887 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3891 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3894 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3897 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3899 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3905 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3909 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3913 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3916 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3924 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3927 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3939 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3943 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3947 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3951 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3954 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3962 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3965 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3977 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3979 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3980 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3983 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3986 huart->TxXferCount = 0U; in UART_DMAError()
3987 UART_EndTxTransfer(huart); in UART_DMAError()
3991 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3994 huart->RxXferCount = 0U; in UART_DMAError()
3995 UART_EndRxTransfer(huart); in UART_DMAError()
3998 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
4002 huart->ErrorCallback(huart); in UART_DMAError()
4005 HAL_UART_ErrorCallback(huart); in UART_DMAError()
4017 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
4018 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
4019 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
4023 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
4026 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
4040 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
4042 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
4045 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
4047 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
4054 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
4055 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
4058 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
4061 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
4065 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
4067 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
4072 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4073 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4074 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
4079 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4082 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4097 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
4099 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
4102 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
4104 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
4111 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
4112 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
4115 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
4118 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
4121 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
4124 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4125 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4126 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
4131 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4134 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4149 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4151 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4155 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4157 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4162 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4167 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4170 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4184 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4186 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4189 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4192 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4195 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4196 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4201 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4204 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4215 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4218 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4220 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4224 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4226 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_8BIT()
4230 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4234 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4235 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4236 huart->TxXferCount--; in UART_TxISR_8BIT()
4248 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4253 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4255 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4259 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4261 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_16BIT()
4265 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4269 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4270 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4271 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4272 huart->TxXferCount--; in UART_TxISR_16BIT()
4285 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4290 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4292 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4294 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4297 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4300 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4304 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4306 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4307 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4308 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4325 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4331 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4333 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4335 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4338 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4341 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4345 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4347 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4348 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4349 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4350 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4367 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4370 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4373 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4376 huart->TxISR = NULL; in UART_EndTransmit_IT()
4380 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4383 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4392 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4394 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4398 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4400 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4401 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4402 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4403 huart->RxXferCount--; in UART_RxISR_8BIT()
4405 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4409 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4411 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4415 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4418 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4421 huart->RxISR = NULL; in UART_RxISR_8BIT()
4424 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4426 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4429 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4432 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4438 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4441 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4444 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4446 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4449 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4454 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4457 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4465 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4468 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4476 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4487 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4490 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4494 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4496 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4497 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4499 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4500 huart->RxXferCount--; in UART_RxISR_16BIT()
4502 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4506 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4508 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4512 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4515 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4518 huart->RxISR = NULL; in UART_RxISR_16BIT()
4521 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4523 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4526 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4529 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4535 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4538 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4541 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4543 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4546 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4551 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4554 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4562 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4565 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4573 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4585 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4587 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4591 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4592 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4593 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4596 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4598 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4601 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4602 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4603 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4604 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4605 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4613 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4615 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4621 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4623 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4629 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4631 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4635 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4641 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4644 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4646 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4650 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4653 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4657 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4660 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4663 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4666 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4668 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4671 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4674 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4680 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4683 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4686 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4688 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4691 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4696 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4699 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4707 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4710 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4721 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4722 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4725 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4728 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4731 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4737 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4748 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4751 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4755 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4756 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4757 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4760 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4762 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4765 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4766 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4768 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4769 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4770 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4778 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4780 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4786 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4788 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4794 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4796 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4800 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4806 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4809 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4811 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4815 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4818 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4822 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4825 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4828 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4831 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4833 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4836 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4839 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4845 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4848 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4851 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4853 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4856 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4861 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4864 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4872 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4875 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4886 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4887 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4890 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4893 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4896 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4902 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()