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()
731 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
738 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
743 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
748 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
752 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
756 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
760 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
764 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
768 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
772 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
776 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
780 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
784 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
788 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
792 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
796 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
802 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
807 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
811 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
815 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
823 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
854 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
858 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
863huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
867huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
871huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
875huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
879huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
883huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
887 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
892 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
897huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
901huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
905huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
909huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
913 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
919 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
924 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
928 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
932 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
955 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
961 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
966 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
968 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
972 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
986 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
990 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
992 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
996 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1109 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1116 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1125 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Transmit()
1127 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit()
1131 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1132 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1137 huart->TxXferSize = Size; in HAL_UART_Transmit()
1138 huart->TxXferCount = Size; in HAL_UART_Transmit()
1141 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1152 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1154 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1157 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1163 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1168 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1171 huart->TxXferCount--; in HAL_UART_Transmit()
1174 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1176 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1182 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1207 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1215 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1224 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Receive()
1226 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Receive()
1230 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1231 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1232 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1237 huart->RxXferSize = Size; in HAL_UART_Receive()
1238 huart->RxXferCount = Size; in HAL_UART_Receive()
1241 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1242 uhMask = huart->Mask; in HAL_UART_Receive()
1245 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1257 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1259 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1261 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1267 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1272 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1275 huart->RxXferCount--; in HAL_UART_Receive()
1279 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1299 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1302 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1311 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Transmit_IT()
1313 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_IT()
1317 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1318 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1319 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1320 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1322 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1323 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1326 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1329 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1331 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1335 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1339 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1344 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1346 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1350 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1354 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1375 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1378 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1386 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1390 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Receive_IT()
1392 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Receive_IT()
1396 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1399 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1402 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1406 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1425 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1431 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1438 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1439 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1440 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1442 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1443 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1447 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1450 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1453 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1456 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1459 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1462 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1466 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1472 if ((huart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_UART_Transmit_DMA()
1474 … if ((huart->hdmatx->LinkedListQueue != NULL) && (huart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_UART_Transmit_DMA()
1477 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_UART_Transmit_DMA()
1480huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in HAL_UART_Transmit_DMA()
1483 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_UART_Transmit_DMA()
1484 (uint32_t)&huart->Instance->TDR; in HAL_UART_Transmit_DMA()
1487 status = HAL_DMAEx_List_Start_IT(huart->hdmatx); in HAL_UART_Transmit_DMA()
1498 …status = HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->… in HAL_UART_Transmit_DMA()
1504 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1507 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1514 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1519 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1541 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1544 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1552 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1554 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1557 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1560 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1564 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1577 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1579 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1580 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1582 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1586 if (huart->hdmatx != NULL) in HAL_UART_DMAPause()
1590 huart->hdmatx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1592 if (HAL_DMAEx_Suspend(huart->hdmatx) != HAL_OK) in HAL_UART_DMAPause()
1594 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1597 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1604 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1608 if (huart->hdmarx != NULL) in HAL_UART_DMAPause()
1611 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1612 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1616 huart->hdmarx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1618 if (HAL_DMAEx_Suspend(huart->hdmarx) != HAL_OK) in HAL_UART_DMAPause()
1620 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1623 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1639 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1641 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1644 if (huart->hdmatx != NULL) in HAL_UART_DMAResume()
1646 if (HAL_DMAEx_Resume(huart->hdmatx) != HAL_OK) in HAL_UART_DMAResume()
1649 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1655 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1658 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1661 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1663 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1665 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1668 if (huart->hdmarx != NULL) in HAL_UART_DMAResume()
1670 if (HAL_DMAEx_Resume(huart->hdmarx) != HAL_OK) in HAL_UART_DMAResume()
1673 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1688 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1697 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1698 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1701 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1704 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1707 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1709 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1711 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1714 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1721 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1725 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1728 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1731 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1733 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1735 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1738 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1745 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1764 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1767 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1769 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1772 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1774 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1779 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1783 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1787 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1791 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1793 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1795 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1798 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1807 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1811 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1815 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1819 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1821 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1823 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1826 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1836 huart->TxXferCount = 0U; in HAL_UART_Abort()
1837 huart->RxXferCount = 0U; in HAL_UART_Abort()
1840 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1843 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1845 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1849 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1852 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1853 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1854 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1856 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1873 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1876 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1877 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1881 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1885 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1889 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1893 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1895 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1897 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1900 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1910 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1913 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1915 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1919 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1936 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1939 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1940 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1943 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1945 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1950 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1954 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1958 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1962 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1964 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1966 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1969 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1979 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1982 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1985 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1988 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1989 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
2008 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2013 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
2015 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
2018 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
2020 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2027 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2031 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2033 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2037 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2041 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2045 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2047 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2051 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2056 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2060 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2064 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2070 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2072 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2082 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2086 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2090 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2096 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2098 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2113 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2114 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2117 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2118 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2121 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2124 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2127 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2129 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2133 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2136 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2137 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2138 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2143 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2146 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2167 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2170 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2171 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2175 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2179 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2183 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2187 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2190 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2193 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2199 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2202 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2205 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2210 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2213 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2221 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2224 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2227 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2229 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2233 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2238 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2241 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2262 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2265 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2266 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2269 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2271 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2276 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2280 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2284 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2288 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2291 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2294 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2300 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2303 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2306 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2309 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2312 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2313 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2318 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2321 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2329 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2332 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2335 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2338 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2339 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2344 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2347 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2359 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2361 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2362 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2363 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2377 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2379 huart->RxISR(huart); in HAL_UART_IRQHandler()
2393 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2395 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2401 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2403 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2409 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2411 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2419 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2421 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2427 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2429 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2433 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2440 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2442 huart->RxISR(huart); in HAL_UART_IRQHandler()
2451 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2452 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2458 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2462 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2466 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2470 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2474 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2477 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2480 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2488 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2491 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2502 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2505 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2515 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2518 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2520 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2529 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2533 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2537 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2543 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2545 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2548 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2551 if (huart->hdmarx->Mode != DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2554 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2555 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2560 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2564 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2565 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2567 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2570 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2575 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2579 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2582 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2589 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2591 if (huart->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2595 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2599 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2602 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2615 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2616 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2620 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2623 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2626 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2627 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2630 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2632 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2636 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2640 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2643 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2657 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2659 huart->TxISR(huart); in HAL_UART_IRQHandler()
2667 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2676 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2679 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2689 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2692 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2703 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2706 UNUSED(huart); in HAL_UART_TxCpltCallback()
2718 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2721 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2733 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2736 UNUSED(huart); in HAL_UART_RxCpltCallback()
2748 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2751 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2763 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2766 UNUSED(huart); in HAL_UART_ErrorCallback()
2778 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2781 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2793 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2796 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2808 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2811 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2825 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2828 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2873 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2875 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2878 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2888 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2890 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2892 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2895 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2897 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2900 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2902 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2905 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2926 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2928 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2930 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2933 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2935 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2938 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2940 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2943 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2964 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2966 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2968 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2971 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2973 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2975 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2984 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2986 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2988 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2991 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2993 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2995 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
3004 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
3006 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
3014 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
3016 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3017 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
3020 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
3023 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
3025 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
3027 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3037 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
3039 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3040 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3043 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3046 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3048 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3050 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3061 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3064 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3066 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3068 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3071 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3073 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3075 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3106 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3110 temp1 = huart->gState; in HAL_UART_GetState()
3111 temp2 = huart->RxState; in HAL_UART_GetState()
3122 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3124 return huart->ErrorCode; in HAL_UART_GetError()
3144 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3147huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3148huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3149huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3150huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3151huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3152huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3153huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3154huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3155huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3156huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3157huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3167 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3178 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3179 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3180 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3182 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3186 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3187 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3190 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3191 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3192 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3193 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3194 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3203 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3204 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3209 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3217 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3219 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3221 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3223 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3228 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3231 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3234 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3243 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3246 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3247 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3255 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3258 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3269 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3276 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3281 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3296 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3299 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3309 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3310 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3313 huart->RxISR = NULL; in UART_SetConfig()
3314 huart->TxISR = NULL; in UART_SetConfig()
3324 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3327 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3330 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3332 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3333 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3337 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3339 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3340 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3344 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3346 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3347 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3351 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3353 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3354 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3358 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3360 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3361 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3366 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3368 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3369 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3374 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3376 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3377 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3378 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3380 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3382 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3383 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3388 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3390 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3391 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3400 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3405 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3411 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3414 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3417 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3419 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3421 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3429 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3432 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3436 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3437 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3439 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3441 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3449 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3450 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3451 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3452 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3454 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3469 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3473 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3484 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3486 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3489 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3494 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3496 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3499 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3503 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3506 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3511 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3513 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3516 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3537 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3539 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3540 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3541 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3542 huart->RxISR = NULL; in UART_Start_Receive_IT()
3545 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3547 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3548 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3551 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3554 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3557 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3559 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3563 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3567 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3569 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3571 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3576 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3578 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3582 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3586 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3588 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3592 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3610 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3615 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3616 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3618 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3619 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3621 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3624 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3627 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3630 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3633 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3637 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_DMA()
3643 if ((huart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in UART_Start_Receive_DMA()
3645 … if ((huart->hdmarx->LinkedListQueue != NULL) && (huart->hdmarx->LinkedListQueue->Head != NULL)) in UART_Start_Receive_DMA()
3648 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in UART_Start_Receive_DMA()
3651 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in UART_Start_Receive_DMA()
3652 (uint32_t)&huart->Instance->RDR; in UART_Start_Receive_DMA()
3655huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in UART_Start_Receive_DMA()
3658 status = HAL_DMAEx_List_Start_IT(huart->hdmarx); in UART_Start_Receive_DMA()
3669 …status = HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuff… in UART_Start_Receive_DMA()
3675 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3678 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3685 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3687 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3691 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3695 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3706 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3709 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3710 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3713 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3723 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3726 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3727 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3730 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3732 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3736 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3737 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3740 huart->RxISR = NULL; in UART_EndRxTransfer()
3752 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3757 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3762 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3766 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3773 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3776 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3788 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3792 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3795 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3806 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3811 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3814 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3815 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3820 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3824 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3827 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3829 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3835 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3839 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3843 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3846 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3854 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3857 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3869 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3873 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3877 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3881 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3884 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3892 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3895 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3907 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3909 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3910 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3913 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3916 huart->TxXferCount = 0U; in UART_DMAError()
3917 UART_EndTxTransfer(huart); in UART_DMAError()
3921 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3924 huart->RxXferCount = 0U; in UART_DMAError()
3925 UART_EndRxTransfer(huart); in UART_DMAError()
3928 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3932 huart->ErrorCallback(huart); in UART_DMAError()
3935 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3947 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3948 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3952 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3955 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3969 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3971 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3974 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3976 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3983 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3984 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3987 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3990 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3993 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3995 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3999 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4000 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4001 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
4006 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4009 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4024 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
4026 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
4029 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
4031 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
4038 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
4039 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
4042 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
4045 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
4048 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
4051 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4052 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4053 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
4058 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4061 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4076 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4078 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4081 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4083 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4087 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4092 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4095 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4109 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4111 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4114 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4117 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4120 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4121 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4126 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4129 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4141 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4144 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4146 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4149 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4152 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4156 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4157 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4158 huart->TxXferCount--; in UART_TxISR_8BIT()
4170 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4175 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4177 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4180 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4183 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4187 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4188 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4189 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4190 huart->TxXferCount--; in UART_TxISR_16BIT()
4202 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4207 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4209 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4211 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4214 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4217 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4221 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4223 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4224 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4225 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4242 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4248 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4250 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4252 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4255 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4258 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4262 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4264 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4265 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4266 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4267 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4283 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4286 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4289 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4292 huart->TxISR = NULL; in UART_EndTransmit_IT()
4296 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4299 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4308 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4310 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4314 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4316 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4317 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4318 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4319 huart->RxXferCount--; in UART_RxISR_8BIT()
4321 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4324 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4327 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4330 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4333 huart->RxISR = NULL; in UART_RxISR_8BIT()
4336 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4338 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4341 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4344 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4350 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4353 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4356 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4358 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4361 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4366 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4369 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4377 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4380 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4388 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4399 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4402 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4406 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4408 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4409 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4411 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4412 huart->RxXferCount--; in UART_RxISR_16BIT()
4414 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4417 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4420 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4423 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4426 huart->RxISR = NULL; in UART_RxISR_16BIT()
4429 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4431 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4434 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4437 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4443 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4446 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4449 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4451 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4454 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4459 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4462 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4470 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4473 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4481 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4492 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4494 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4498 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4499 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4500 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4503 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4505 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4508 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4509 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4510 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4511 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4512 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4520 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4522 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4528 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4530 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4536 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4538 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4542 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4548 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4551 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4553 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4557 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4560 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4564 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4567 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4570 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4573 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4575 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4578 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4581 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4587 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4590 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4593 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4595 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4598 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4603 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4606 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4614 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4617 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4628 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4629 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4632 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4635 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4638 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4644 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4655 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4658 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4662 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4663 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4664 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4667 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4669 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4672 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4673 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4675 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4676 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4677 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4685 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4687 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4693 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4695 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4701 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4703 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4707 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4713 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4716 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4718 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4722 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4725 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4729 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4732 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4735 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4738 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4740 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4743 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4746 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4752 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4755 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4758 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4760 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4763 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4768 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4771 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4779 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4782 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4793 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4794 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4797 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4800 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4803 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4809 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()