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()
1119 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1126 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1133 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1134 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1139 huart->TxXferSize = Size; in HAL_UART_Transmit()
1140 huart->TxXferCount = Size; in HAL_UART_Transmit()
1143 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1154 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1156 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1159 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1165 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1170 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1173 huart->TxXferCount--; in HAL_UART_Transmit()
1176 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1178 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1184 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1209 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1217 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1224 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1225 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1226 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1231 huart->RxXferSize = Size; in HAL_UART_Receive()
1232 huart->RxXferCount = Size; in HAL_UART_Receive()
1235 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1236 uhMask = huart->Mask; in HAL_UART_Receive()
1239 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1251 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1253 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1255 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1261 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1266 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1269 huart->RxXferCount--; in HAL_UART_Receive()
1273 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1293 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1296 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1303 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1304 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1305 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1306 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1308 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1309 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1312 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1315 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1317 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1321 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1325 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1330 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1332 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1336 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1340 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1361 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1364 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1372 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1374 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1377 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1380 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1384 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1403 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1409 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1416 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1417 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1418 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1420 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1421 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1423 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1426 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1429 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1432 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1435 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1439 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1445 if ((huart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_UART_Transmit_DMA()
1447 … if ((huart->hdmatx->LinkedListQueue != NULL) && (huart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_UART_Transmit_DMA()
1450 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_UART_Transmit_DMA()
1453huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in HAL_UART_Transmit_DMA()
1456 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_UART_Transmit_DMA()
1457 (uint32_t)&huart->Instance->TDR; in HAL_UART_Transmit_DMA()
1460 status = HAL_DMAEx_List_Start_IT(huart->hdmatx); in HAL_UART_Transmit_DMA()
1471 …status = HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->… in HAL_UART_Transmit_DMA()
1477 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1480 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1486 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1490 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1512 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1515 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1523 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1525 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1528 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1531 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1535 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1548 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1550 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1551 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1553 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1557 if (huart->hdmatx != NULL) in HAL_UART_DMAPause()
1561 huart->hdmatx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1563 if (HAL_DMAEx_Suspend(huart->hdmatx) != HAL_OK) in HAL_UART_DMAPause()
1565 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1568 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1575 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1579 if (huart->hdmarx != NULL) in HAL_UART_DMAPause()
1582 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1583 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1587 huart->hdmarx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1589 if (HAL_DMAEx_Suspend(huart->hdmarx) != HAL_OK) in HAL_UART_DMAPause()
1591 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1594 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1610 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1612 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1615 if (huart->hdmatx != NULL) in HAL_UART_DMAResume()
1617 if (HAL_DMAEx_Resume(huart->hdmatx) != HAL_OK) in HAL_UART_DMAResume()
1620 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1626 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1629 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1632 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1634 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1636 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1639 if (huart->hdmarx != NULL) in HAL_UART_DMAResume()
1641 if (HAL_DMAEx_Resume(huart->hdmarx) != HAL_OK) in HAL_UART_DMAResume()
1644 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1659 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1668 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1669 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1672 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1675 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1678 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1680 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1682 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1685 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1692 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1696 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1699 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1702 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1704 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1706 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1709 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1716 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1735 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1738 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1740 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1743 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1745 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1750 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1753 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1756 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1760 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1762 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1764 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1767 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1776 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1779 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1782 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1786 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1788 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1790 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1793 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1803 huart->TxXferCount = 0U; in HAL_UART_Abort()
1804 huart->RxXferCount = 0U; in HAL_UART_Abort()
1807 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1810 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1812 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1816 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1819 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1820 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1821 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1823 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1840 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1843 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1844 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1848 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1851 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1854 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1858 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1860 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1862 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1865 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1875 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1878 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1880 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1884 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1901 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1904 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1905 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1908 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1910 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1915 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1918 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1921 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1925 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1927 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1929 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1932 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1942 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1945 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1948 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1951 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1952 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1971 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1976 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1978 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1981 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1983 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1990 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1994 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1996 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2000 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2004 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2008 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2010 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2014 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2019 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2022 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2025 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2031 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2033 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2043 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2046 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2049 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2055 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2057 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2072 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2073 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2076 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2077 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2080 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2083 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2086 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2088 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2092 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2095 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2096 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2097 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2102 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2105 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2126 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2129 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2130 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2134 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2137 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2140 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2144 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2147 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2150 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2156 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2159 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2162 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2167 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2170 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2178 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2181 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2184 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2186 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2190 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2195 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2198 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2219 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2222 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2223 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2226 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2228 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2233 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2236 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2239 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2243 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2246 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2249 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2255 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2258 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2261 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2264 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2267 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2268 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2273 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2276 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2284 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2287 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2290 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2293 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2294 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2299 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2302 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2314 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2316 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2317 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2318 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2332 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2334 huart->RxISR(huart); in HAL_UART_IRQHandler()
2348 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2350 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2356 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2358 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2364 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2366 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2374 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2376 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2382 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2384 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2388 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2395 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2397 huart->RxISR(huart); in HAL_UART_IRQHandler()
2406 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2407 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2413 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2417 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2420 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2423 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2427 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2430 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2433 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2441 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2444 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2455 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2458 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2468 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2471 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2473 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2482 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2486 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2490 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2496 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2498 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2501 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2504 if (huart->hdmarx->Mode != DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2507 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2508 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2512 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2515 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2516 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2518 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2521 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2526 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2530 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2533 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2540 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2542 if (huart->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2546 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2550 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2553 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2566 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2567 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2571 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2574 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2577 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2578 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2581 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2583 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2587 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2591 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2594 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2606 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2613 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2616 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2626 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2628 huart->TxISR(huart); in HAL_UART_IRQHandler()
2636 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2645 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2648 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2658 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2661 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2672 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2675 UNUSED(huart); in HAL_UART_TxCpltCallback()
2687 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2690 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2702 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2705 UNUSED(huart); in HAL_UART_RxCpltCallback()
2717 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2720 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2732 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2735 UNUSED(huart); in HAL_UART_ErrorCallback()
2747 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2750 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2762 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2765 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2777 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2780 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2794 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2797 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2842 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2844 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2847 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2857 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2859 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2861 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2864 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2866 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2869 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2871 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2874 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2895 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2897 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2899 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2902 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2904 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2907 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2909 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2912 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2933 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2935 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2937 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2940 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2942 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2944 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2953 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2955 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2957 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2960 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2962 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2964 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2973 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2975 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2983 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2985 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2986 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2989 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2992 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2994 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2996 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3006 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
3008 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3009 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3012 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3015 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3017 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3019 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3030 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3033 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3035 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3037 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3040 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3042 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3044 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3075 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3079 temp1 = huart->gState; in HAL_UART_GetState()
3080 temp2 = huart->RxState; in HAL_UART_GetState()
3091 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3093 return huart->ErrorCode; in HAL_UART_GetError()
3113 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3116huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3117huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3118huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3119huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3120huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3121huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3122huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3123huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3124huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3125huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3126huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3127huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3137 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3148 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3149 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3150 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3152 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3156 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3157 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3160 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3161 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3162 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3163 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3164 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3173 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3174 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3179 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3187 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3189 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3191 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3193 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3198 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3201 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3204 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3244 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3247 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3248 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3256 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3259 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3270 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3311 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3316 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3365 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3368 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3378 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3379 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3382 huart->RxISR = NULL; in UART_SetConfig()
3383 huart->TxISR = NULL; in UART_SetConfig()
3393 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3396 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3399 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3401 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3402 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3406 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3408 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3409 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3413 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3415 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3416 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3420 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3422 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3423 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3427 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3429 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3430 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3435 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3437 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3438 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3443 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3445 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3446 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3447 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3449 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3451 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3452 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3457 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3459 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3460 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3469 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3474 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3480 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3483 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3486 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3488 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3490 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3498 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3501 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3505 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3506 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3508 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3510 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3518 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3519 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3520 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3521 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3523 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3538 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3542 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3553 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3555 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3558 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3563 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3565 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3568 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3572 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3575 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3580 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3582 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3585 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3606 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3608 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3609 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3610 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3611 huart->RxISR = NULL; in UART_Start_Receive_IT()
3614 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3616 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3617 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3620 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3623 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3626 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3628 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3632 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3636 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3638 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3640 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3645 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3647 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3651 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3655 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3657 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3661 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3679 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3684 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3685 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3687 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3688 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3690 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3693 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3696 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3699 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3702 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3706 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_DMA()
3712 if ((huart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in UART_Start_Receive_DMA()
3714 … if ((huart->hdmarx->LinkedListQueue != NULL) && (huart->hdmarx->LinkedListQueue->Head != NULL)) in UART_Start_Receive_DMA()
3717 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in UART_Start_Receive_DMA()
3720 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in UART_Start_Receive_DMA()
3721 (uint32_t)&huart->Instance->RDR; in UART_Start_Receive_DMA()
3724huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in UART_Start_Receive_DMA()
3727 status = HAL_DMAEx_List_Start_IT(huart->hdmarx); in UART_Start_Receive_DMA()
3738 …status = HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuff… in UART_Start_Receive_DMA()
3744 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3747 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3754 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3756 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3760 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3764 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3775 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3778 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3779 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3782 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3792 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3795 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3796 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3799 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3801 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3805 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3806 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3809 huart->RxISR = NULL; in UART_EndRxTransfer()
3821 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3826 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3830 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3833 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3840 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3843 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3855 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3859 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3862 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3873 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3878 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3881 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3882 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3886 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3889 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3892 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3894 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3900 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3904 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3908 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3911 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3919 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3922 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3934 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3938 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3942 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3946 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3949 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3957 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3960 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3972 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3974 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3975 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3978 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3981 huart->TxXferCount = 0U; in UART_DMAError()
3982 UART_EndTxTransfer(huart); in UART_DMAError()
3986 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3989 huart->RxXferCount = 0U; in UART_DMAError()
3990 UART_EndRxTransfer(huart); in UART_DMAError()
3993 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3997 huart->ErrorCallback(huart); in UART_DMAError()
4000 HAL_UART_ErrorCallback(huart); in UART_DMAError()
4012 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
4013 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
4014 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
4018 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
4021 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
4035 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
4037 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
4040 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
4042 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
4049 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
4050 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
4053 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
4056 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
4059 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
4061 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
4065 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4066 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4067 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
4072 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4075 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4090 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
4092 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
4095 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
4097 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
4104 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
4105 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
4108 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
4111 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
4114 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
4117 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4118 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4119 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
4124 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4127 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4142 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4144 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4147 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4149 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4153 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4158 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4161 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4175 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4177 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4180 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4183 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4186 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4187 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4192 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4195 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4207 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4210 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4212 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4215 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4218 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4222 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4223 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4224 huart->TxXferCount--; in UART_TxISR_8BIT()
4236 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4241 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4243 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4246 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4249 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4253 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4254 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4255 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4256 huart->TxXferCount--; in UART_TxISR_16BIT()
4268 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4273 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4275 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4277 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4280 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4283 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4287 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4289 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4290 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4291 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4308 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4314 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4316 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4318 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4321 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4324 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4328 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4330 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4331 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4332 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4333 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4349 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4352 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4355 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4358 huart->TxISR = NULL; in UART_EndTransmit_IT()
4362 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4365 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4374 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4376 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4380 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4382 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4383 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4384 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4385 huart->RxXferCount--; in UART_RxISR_8BIT()
4387 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4390 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4393 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4396 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4399 huart->RxISR = NULL; in UART_RxISR_8BIT()
4402 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4404 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4407 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4410 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4416 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4419 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4422 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4424 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4427 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4432 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4435 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4443 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4446 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4454 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4465 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4468 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4472 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4474 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4475 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4477 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4478 huart->RxXferCount--; in UART_RxISR_16BIT()
4480 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4483 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4486 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4489 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4492 huart->RxISR = NULL; in UART_RxISR_16BIT()
4495 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4497 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4500 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4503 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4509 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4512 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4515 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4517 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4520 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4525 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4528 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4536 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4539 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4547 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4558 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4560 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4564 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4565 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4566 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4569 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4571 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4574 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4575 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4576 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4577 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4578 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4586 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4588 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4594 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4596 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4602 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4604 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4608 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4614 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4617 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4619 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4623 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4626 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4630 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4633 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4636 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4639 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4641 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4644 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4647 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4653 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4656 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4659 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4661 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4664 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4669 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4672 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4680 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4683 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4694 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4695 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4698 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4701 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4704 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4710 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4721 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4724 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4728 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4729 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4730 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4733 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4735 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4738 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4739 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4741 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4742 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4743 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4751 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4753 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4759 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4761 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4767 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4769 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4773 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4779 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4782 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4784 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4788 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4791 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4795 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4798 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4801 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4804 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4806 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4809 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4812 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4818 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4821 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4824 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4826 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4829 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4834 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4837 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4845 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4848 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4859 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4860 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4863 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4866 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4869 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4875 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()