Lines Matching refs:huart

200 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
202 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
214 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
215 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
216 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
217 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
218 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
219 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
220 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
221 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
222 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
309 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
312 if (huart == NULL) in HAL_UART_Init()
317 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
320 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
325 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_Init()
328 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
331 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
334 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
336 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
338 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
342 huart->MspInitCallback(huart); in HAL_UART_Init()
345 HAL_UART_MspInit(huart); in HAL_UART_Init()
349 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
351 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
355 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
357 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
361 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
369 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
370 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
372 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
375 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
384 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
387 if (huart == NULL) in HAL_HalfDuplex_Init()
393 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
395 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
398 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
401 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
403 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
405 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
409 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
412 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
416 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
418 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
422 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
424 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
428 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
436 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
437 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
440 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
442 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
445 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
459 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
462 if (huart == NULL) in HAL_LIN_Init()
468 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
473 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
478 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
483 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
486 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
489 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
491 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
493 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
497 huart->MspInitCallback(huart); in HAL_LIN_Init()
500 HAL_UART_MspInit(huart); in HAL_LIN_Init()
504 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
506 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
510 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
512 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
516 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
524 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
525 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
528 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
531 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
533 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
536 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
558 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
561 if (huart == NULL) in HAL_MultiProcessor_Init()
569 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
572 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
575 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
577 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
579 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
583 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
586 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
590 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
592 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
596 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
598 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
602 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
610 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
611 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
616 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
620 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
622 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
625 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
634 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
637 if (huart == NULL) in HAL_UART_DeInit()
643 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_DeInit()
645 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
647 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
649 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
650 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
651 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
654 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
656 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
659 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
662 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
665 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
666 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
667 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
668 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
669 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
671 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
681 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
684 UNUSED(huart); in HAL_UART_MspInit()
696 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
699 UNUSED(huart); in HAL_UART_MspDeInit()
732 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
739 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
744 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
749 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
753 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
757 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
761 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
765 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
769 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
773 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
777 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
781 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
789 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
793 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
797 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
801 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
807 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
812 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
816 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
820 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
828 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
860 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
864 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
869huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
873huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
877huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
881huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
885huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
889huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
893 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
898 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
903huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
907huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
911huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
915huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
919huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
923 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
929 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
934 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
938 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
942 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
950 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
965 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
971 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
976 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
978 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
982 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
996 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1000 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1002 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1006 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1127 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1134 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1144 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1152 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1153 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1158 huart->TxXferSize = Size; in HAL_UART_Transmit()
1159 huart->TxXferCount = Size; in HAL_UART_Transmit()
1162 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1173 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1175 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1178 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1184 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1189 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1192 huart->TxXferCount--; in HAL_UART_Transmit()
1195 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1197 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1203 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1233 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1241 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1251 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1259 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1260 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1261 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1266 huart->RxXferSize = Size; in HAL_UART_Receive()
1267 huart->RxXferCount = Size; in HAL_UART_Receive()
1270 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1271 uhMask = huart->Mask; in HAL_UART_Receive()
1274 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1286 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1288 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1290 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1296 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1301 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1304 huart->RxXferCount--; in HAL_UART_Receive()
1308 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1333 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1336 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1346 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1354 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1355 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1356 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1357 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1359 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1360 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1363 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1366 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1368 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1372 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1376 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1381 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1383 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1387 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1391 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1417 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1420 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1430 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1439 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1441 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1444 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1447 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1451 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1475 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1478 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1488 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1496 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1497 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1498 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1500 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1501 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1503 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1506 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1509 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1512 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1515 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1518 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1521 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1524 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1530 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1534 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1561 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1564 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1574 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_DMA()
1583 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1585 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1588 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1591 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1595 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1608 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1610 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1611 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1613 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1617 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1619 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1623 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1624 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1627 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1638 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1640 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1643 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1645 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1648 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1651 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1653 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1655 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1658 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1669 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1678 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1679 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1682 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1685 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1688 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1690 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1692 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1695 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1702 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1706 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1709 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1712 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1714 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1716 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1719 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1726 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1745 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1748 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1750 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1753 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1755 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1760 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1763 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1766 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1770 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1772 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1774 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1777 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1786 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1789 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1792 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1796 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1798 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1800 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1803 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1813 huart->TxXferCount = 0U; in HAL_UART_Abort()
1814 huart->RxXferCount = 0U; in HAL_UART_Abort()
1817 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1820 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1822 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1826 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1829 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1830 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1831 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1833 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1850 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1853 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1854 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1858 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1861 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1864 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1868 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1870 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1872 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1875 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1885 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1888 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1890 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1894 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1911 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1914 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1915 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1918 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1920 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1925 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1928 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1931 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1935 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1937 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1939 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1942 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1952 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1955 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1958 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1961 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1962 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1981 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1986 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1988 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1991 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1993 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2000 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2004 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2006 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2010 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2014 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2018 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2020 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2024 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2029 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2032 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2035 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2041 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2043 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2053 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2056 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2059 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2065 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2067 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2082 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2083 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2086 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2087 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2090 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2093 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2096 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2098 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2102 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2105 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2106 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2107 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2112 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2115 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2136 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2139 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2140 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2144 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2147 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2150 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2154 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2157 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2160 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2166 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2169 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2172 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2177 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2180 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2188 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2191 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2194 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2196 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2200 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2205 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2208 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2229 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2232 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2233 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2236 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2238 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2243 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2246 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2249 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2253 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2256 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2259 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2265 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2268 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2271 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2274 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2277 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2278 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2283 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2286 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2294 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2297 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2300 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2303 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2304 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2309 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2312 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2324 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2326 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2327 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2328 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2342 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2344 huart->RxISR(huart); in HAL_UART_IRQHandler()
2358 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2360 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2366 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2368 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2374 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2376 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2384 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2386 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2392 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2394 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2398 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2405 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2407 huart->RxISR(huart); in HAL_UART_IRQHandler()
2416 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2417 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2423 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2427 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2430 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2433 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2437 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2440 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2443 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2451 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2454 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()
2478 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2481 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2483 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2492 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2496 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2500 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2506 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2508 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2511 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2514 if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2517 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2518 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2522 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2525 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2526 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2528 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2531 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2536 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2540 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2543 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2550 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2552 if (HAL_IS_BIT_SET(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2556 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2560 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2563 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2576 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2577 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2581 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2584 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2587 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2588 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2591 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2593 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2597 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2601 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2604 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2616 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2623 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2626 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2636 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2638 huart->TxISR(huart); in HAL_UART_IRQHandler()
2646 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2655 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2658 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2668 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2671 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2682 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2685 UNUSED(huart); in HAL_UART_TxCpltCallback()
2697 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2700 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2712 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2715 UNUSED(huart); in HAL_UART_RxCpltCallback()
2727 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2730 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2742 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2745 UNUSED(huart); in HAL_UART_ErrorCallback()
2757 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2760 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2772 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2775 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2787 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2790 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2804 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2807 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2852 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2854 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2857 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2867 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2869 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2871 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2874 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2876 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2879 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2881 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2884 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2905 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2907 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2909 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2912 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2914 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2917 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2919 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2922 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2943 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2945 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2947 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2950 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2952 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2954 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2963 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2965 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2967 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2970 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2972 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2974 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2983 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2985 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2993 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2995 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2996 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2999 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
3002 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
3004 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
3006 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3016 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
3018 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3019 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3022 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3025 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3027 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3029 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3040 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3043 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3045 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3047 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3050 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3052 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3054 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3085 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3089 temp1 = huart->gState; in HAL_UART_GetState()
3090 temp2 = huart->RxState; in HAL_UART_GetState()
3101 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3103 return huart->ErrorCode; in HAL_UART_GetError()
3123 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3126huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3127huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3128huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3129huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3130huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3131huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3132huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3133huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3134huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3135huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3136huart->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
3158 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3159 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3160 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3162 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3166 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3167 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3170 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3171 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3172 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3173 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3174 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3183 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3184 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3189 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3197 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3199 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3201 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3203 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3208 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3211 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3214 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3223 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3226 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3227 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3235 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3238 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3249 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3256 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3261 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3276 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3279 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3289 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3290 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3293 huart->RxISR = NULL; in UART_SetConfig()
3294 huart->TxISR = NULL; in UART_SetConfig()
3304 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3307 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3310 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3312 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3313 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3317 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3319 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3320 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3324 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3326 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3327 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3331 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3333 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3334 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3338 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3340 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3341 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3346 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3348 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3349 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3354 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3356 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3357 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3358 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3360 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3362 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3363 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3368 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3370 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3371 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3380 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3385 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3391 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3394 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3397 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3399 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3401 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3409 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3412 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3416 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3417 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3419 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3421 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3429 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3430 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3431 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3432 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3434 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3449 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3453 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3464 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3466 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3469 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3474 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3476 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3479 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3483 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3486 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3491 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3493 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3496 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3517 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3519 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3520 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3521 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3522 huart->RxISR = NULL; in UART_Start_Receive_IT()
3525 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3527 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3528 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3531 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3534 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3537 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3539 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3543 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3547 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3549 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3551 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3556 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3558 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3562 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3566 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3568 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3572 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3590 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3592 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3593 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3595 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3596 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3598 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3601 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3604 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3607 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3610 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3613 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3616 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3619 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3626 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3628 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3632 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3636 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3647 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3650 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3651 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3654 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3664 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3667 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3668 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3671 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3673 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3677 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3678 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3681 huart->RxISR = NULL; in UART_EndRxTransfer()
3693 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3698 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3702 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3705 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3712 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3715 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3727 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3731 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3734 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3745 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3750 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3753 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3754 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3758 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3761 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3764 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3766 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3772 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3776 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3780 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3783 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3791 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3794 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3806 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3810 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3814 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3818 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3821 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3829 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3832 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3844 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3846 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3847 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3850 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3853 huart->TxXferCount = 0U; in UART_DMAError()
3854 UART_EndTxTransfer(huart); in UART_DMAError()
3858 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3861 huart->RxXferCount = 0U; in UART_DMAError()
3862 UART_EndRxTransfer(huart); in UART_DMAError()
3865 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3869 huart->ErrorCallback(huart); in UART_DMAError()
3872 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3884 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3885 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3889 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3892 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3906 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3908 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3911 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3913 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3920 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3921 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3924 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3927 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3930 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3932 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3936 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3937 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3938 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3943 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3946 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3961 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3963 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3966 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3968 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3975 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3976 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3979 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3982 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3985 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3988 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3989 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3990 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3995 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3998 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4013 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4015 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4018 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4020 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4024 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4029 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4032 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4046 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4048 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4051 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4054 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4057 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4058 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4063 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4066 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4078 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4081 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4083 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4086 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4089 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4093 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4094 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4095 huart->TxXferCount--; in UART_TxISR_8BIT()
4107 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4112 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4114 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4117 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4120 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4124 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4125 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4126 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4127 huart->TxXferCount--; in UART_TxISR_16BIT()
4139 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4144 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4146 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4148 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4151 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4154 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4158 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4160 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4161 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4162 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4179 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4185 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4187 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4189 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4192 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4195 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4199 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4201 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4202 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4203 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4204 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4220 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4223 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4226 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4229 huart->TxISR = NULL; in UART_EndTransmit_IT()
4233 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4236 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4245 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4247 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4251 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4253 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4254 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4255 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4256 huart->RxXferCount--; in UART_RxISR_8BIT()
4258 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4261 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4264 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4267 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4270 huart->RxISR = NULL; in UART_RxISR_8BIT()
4273 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4275 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4278 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4281 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4287 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4290 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4293 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4295 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4298 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4303 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4306 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4314 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4317 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4325 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4336 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4339 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4343 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4345 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4346 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4348 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4349 huart->RxXferCount--; in UART_RxISR_16BIT()
4351 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4354 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4357 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4360 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4363 huart->RxISR = NULL; in UART_RxISR_16BIT()
4366 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4368 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4371 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4374 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4380 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4383 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4386 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4388 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4391 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4396 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4399 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4407 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4410 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4418 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4429 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4431 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4435 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4436 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4437 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4440 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4442 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4445 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4446 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4447 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4448 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4449 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4457 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4459 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4465 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4467 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4473 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4475 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4479 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4485 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4488 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4490 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4494 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4497 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4501 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4504 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4507 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4510 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4512 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4515 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4518 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4524 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4527 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4530 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4532 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4535 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4540 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4543 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4551 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4554 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4565 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4566 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4569 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4572 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4575 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4581 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4592 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4595 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4599 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4600 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4601 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4604 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4606 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4609 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4610 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4612 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4613 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4614 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4622 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4624 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4630 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4632 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4638 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4640 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4644 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4650 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4653 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4655 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4659 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4662 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4666 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4669 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4672 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4675 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4677 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4680 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4683 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4689 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4692 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4695 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4697 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4700 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4705 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4708 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4716 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4719 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4730 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4731 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4734 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4737 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4740 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4746 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()