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->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
789 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
793 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
797 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
803 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
808 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
812 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
816 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
824 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
856 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
860 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
865 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
869 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
873 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
877 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
881 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
885 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
889 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
894 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
899 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
903 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
907 …huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
911 …huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
915 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
921 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
926 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
930 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
934 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
942 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
957 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
963 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
968 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
970 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
974 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
988 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
992 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
994 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
998 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1111 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1118 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1125 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1126 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1131 huart->TxXferSize = Size; in HAL_UART_Transmit()
1132 huart->TxXferCount = Size; in HAL_UART_Transmit()
1135 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1146 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1148 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1151 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1157 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1162 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1165 huart->TxXferCount--; in HAL_UART_Transmit()
1168 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1170 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1176 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1201 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1209 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1216 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1217 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1218 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1223 huart->RxXferSize = Size; in HAL_UART_Receive()
1224 huart->RxXferCount = Size; in HAL_UART_Receive()
1227 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1228 uhMask = huart->Mask; in HAL_UART_Receive()
1231 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1243 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1245 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1247 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1253 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1258 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1261 huart->RxXferCount--; in HAL_UART_Receive()
1265 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1285 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1288 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1295 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1296 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1297 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1298 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1300 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1301 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1304 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1307 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1309 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1313 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1317 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1322 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1324 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1328 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1332 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1353 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1356 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1364 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1366 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1369 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1372 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1376 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1395 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1401 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1408 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1409 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1410 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1412 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1413 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1415 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1418 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1421 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1424 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1427 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1431 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1437 if ((huart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_UART_Transmit_DMA()
1439 … if ((huart->hdmatx->LinkedListQueue != NULL) && (huart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_UART_Transmit_DMA()
1442 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_UART_Transmit_DMA()
1445 …huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in HAL_UART_Transmit_DMA()
1448 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_UART_Transmit_DMA()
1449 (uint32_t)&huart->Instance->TDR; in HAL_UART_Transmit_DMA()
1452 status = HAL_DMAEx_List_Start_IT(huart->hdmatx); in HAL_UART_Transmit_DMA()
1463 …status = HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->… in HAL_UART_Transmit_DMA()
1469 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1472 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1478 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1482 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1504 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1507 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1515 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1517 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1520 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1523 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1527 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1540 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1542 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1543 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1545 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1549 if (huart->hdmatx != NULL) in HAL_UART_DMAPause()
1553 huart->hdmatx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1555 if (HAL_DMAEx_Suspend(huart->hdmatx) != HAL_OK) in HAL_UART_DMAPause()
1557 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1560 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1567 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1571 if (huart->hdmarx != NULL) in HAL_UART_DMAPause()
1574 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1575 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1579 huart->hdmarx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1581 if (HAL_DMAEx_Suspend(huart->hdmarx) != HAL_OK) in HAL_UART_DMAPause()
1583 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1586 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1602 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1604 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1607 if (huart->hdmatx != NULL) in HAL_UART_DMAResume()
1609 if (HAL_DMAEx_Resume(huart->hdmatx) != HAL_OK) in HAL_UART_DMAResume()
1612 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1618 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1621 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1624 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1626 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1628 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1631 if (huart->hdmarx != NULL) in HAL_UART_DMAResume()
1633 if (HAL_DMAEx_Resume(huart->hdmarx) != HAL_OK) in HAL_UART_DMAResume()
1636 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1651 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1660 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1661 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1664 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1667 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1670 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1672 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1674 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1677 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1684 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1688 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1691 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1694 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1696 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1698 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1701 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1708 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1727 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1730 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1732 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1735 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1737 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1742 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1745 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1748 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1752 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1754 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1756 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1759 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1768 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1771 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1774 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1778 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1780 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1782 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1785 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1795 huart->TxXferCount = 0U; in HAL_UART_Abort()
1796 huart->RxXferCount = 0U; in HAL_UART_Abort()
1799 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1802 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1804 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1808 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1811 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1812 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1813 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1815 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1832 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1835 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1836 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1840 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1843 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1846 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1850 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1852 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1854 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1857 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1867 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1870 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1872 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1876 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1893 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1896 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1897 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1900 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1902 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1907 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1910 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1913 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1917 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1919 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1921 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1924 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1934 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1937 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1940 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1943 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1944 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1963 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1968 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1970 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1973 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1975 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1982 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1986 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1988 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1992 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1996 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2000 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2002 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2006 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2011 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2014 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2017 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2023 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2025 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2035 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2038 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2041 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2047 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2049 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2064 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2065 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2068 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2069 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2072 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2075 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2078 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2080 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2084 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2087 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2088 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2089 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2094 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2097 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2118 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2121 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2122 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2126 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2129 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2132 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2136 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2139 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2142 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2148 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2151 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2154 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2159 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2162 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2170 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2173 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2176 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2178 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2182 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2187 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2190 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2211 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2214 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2215 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2218 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2220 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2225 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2228 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2231 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2235 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2238 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2241 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2247 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2250 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2253 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2256 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2259 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2260 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2265 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2268 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2276 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2279 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2282 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2285 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2286 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2291 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2294 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2306 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2308 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2309 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2310 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2324 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2326 huart->RxISR(huart); in HAL_UART_IRQHandler()
2340 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2342 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2348 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2350 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2356 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2358 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2366 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2368 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2374 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2376 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2380 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2387 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2389 huart->RxISR(huart); in HAL_UART_IRQHandler()
2398 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2399 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2405 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2409 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2412 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2415 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2419 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2422 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2425 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2433 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2436 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2447 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2450 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2460 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2463 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2465 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2474 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2478 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2482 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2488 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2490 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2493 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2496 if (huart->hdmarx->Mode != DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2499 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2500 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2504 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2507 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2508 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2510 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2513 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2518 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2522 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2525 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2532 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2534 if (huart->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2538 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2542 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2545 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2558 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2559 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2563 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2566 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2569 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2570 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2573 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2575 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2579 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2583 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2586 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2600 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2602 huart->TxISR(huart); in HAL_UART_IRQHandler()
2610 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2619 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2622 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2632 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2635 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2646 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2649 UNUSED(huart); in HAL_UART_TxCpltCallback()
2661 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2664 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2676 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2679 UNUSED(huart); in HAL_UART_RxCpltCallback()
2691 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2694 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2706 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2709 UNUSED(huart); in HAL_UART_ErrorCallback()
2721 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2724 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2736 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2739 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2751 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2754 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2768 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2771 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2816 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2818 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2821 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2831 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2833 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2835 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2838 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2840 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2843 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2845 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2848 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2869 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2871 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2873 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2876 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2878 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2881 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2883 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2886 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2907 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2909 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2911 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2914 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2916 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2918 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2927 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2929 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2931 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2934 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2936 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2938 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2947 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2949 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2957 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2959 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2960 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2963 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2966 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2968 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2970 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2980 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2982 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2983 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2986 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2989 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2991 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2993 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3004 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3007 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3009 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3011 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3014 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3016 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3018 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3049 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3053 temp1 = huart->gState; in HAL_UART_GetState()
3054 temp2 = huart->RxState; in HAL_UART_GetState()
3065 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3067 return huart->ErrorCode; in HAL_UART_GetError()
3087 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3090 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3091 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3092 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3093 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3094 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3095 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3096 …huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3097 …huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3098 …huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3099 …huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3100 …huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3110 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3121 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3122 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3123 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3125 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3129 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3130 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3133 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3134 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3135 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3136 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3137 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3146 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3147 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3152 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3160 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3162 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3164 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3166 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3171 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3174 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3177 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3204 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3207 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3208 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3216 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3219 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3230 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3260 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3265 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3303 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3306 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3316 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3317 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3320 huart->RxISR = NULL; in UART_SetConfig()
3321 huart->TxISR = NULL; in UART_SetConfig()
3331 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3334 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3337 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3339 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3340 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3344 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3346 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3347 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3351 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3353 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3354 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3358 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3360 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3361 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3365 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3367 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3368 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3373 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3375 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3376 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3381 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3383 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3384 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3385 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3387 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3389 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3390 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3395 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3397 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3398 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3407 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3412 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3418 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3421 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3424 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3426 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3428 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3436 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3439 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3443 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3444 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3446 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3448 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3456 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3457 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3458 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3459 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3461 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3476 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3480 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3491 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3493 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3496 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3501 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3503 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3506 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3510 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3513 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3518 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3520 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3523 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3544 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3546 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3547 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3548 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3549 huart->RxISR = NULL; in UART_Start_Receive_IT()
3552 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3554 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3555 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3558 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3561 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3564 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3566 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3570 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3574 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3576 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3578 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3583 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3585 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3589 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3593 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3595 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3599 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3617 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3622 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3623 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3625 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3626 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3628 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3631 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3634 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3637 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3640 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3644 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_DMA()
3650 if ((huart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in UART_Start_Receive_DMA()
3652 … if ((huart->hdmarx->LinkedListQueue != NULL) && (huart->hdmarx->LinkedListQueue->Head != NULL)) in UART_Start_Receive_DMA()
3655 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in UART_Start_Receive_DMA()
3658 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in UART_Start_Receive_DMA()
3659 (uint32_t)&huart->Instance->RDR; in UART_Start_Receive_DMA()
3662 …huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in UART_Start_Receive_DMA()
3665 status = HAL_DMAEx_List_Start_IT(huart->hdmarx); in UART_Start_Receive_DMA()
3676 …status = HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuff… in UART_Start_Receive_DMA()
3682 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3685 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3692 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3694 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3698 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3702 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3713 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3716 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3717 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3720 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3730 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3733 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3734 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3737 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3739 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3743 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3744 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3747 huart->RxISR = NULL; in UART_EndRxTransfer()
3759 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3764 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3768 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3771 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3778 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3781 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3793 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3797 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3800 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3811 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3816 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3819 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3820 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3824 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3827 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3830 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3832 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3838 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3842 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3846 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3849 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3857 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3860 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3872 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3876 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3880 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3884 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3887 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3895 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3898 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3910 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3912 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3913 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3916 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3919 huart->TxXferCount = 0U; in UART_DMAError()
3920 UART_EndTxTransfer(huart); in UART_DMAError()
3924 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3927 huart->RxXferCount = 0U; in UART_DMAError()
3928 UART_EndRxTransfer(huart); in UART_DMAError()
3931 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3935 huart->ErrorCallback(huart); in UART_DMAError()
3938 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3950 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3951 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3955 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3958 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3972 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3974 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3977 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3979 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3986 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3987 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3990 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3993 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3996 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3998 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
4002 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4003 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4004 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
4009 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4012 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4027 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
4029 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
4032 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
4034 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
4041 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
4042 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
4045 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
4048 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
4051 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
4054 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4055 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4056 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
4061 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4064 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4079 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4081 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4084 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4086 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4090 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4095 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4098 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4112 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4114 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4117 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4120 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4123 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4124 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4129 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4132 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4144 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4147 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4149 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4152 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4155 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4159 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4160 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4161 huart->TxXferCount--; in UART_TxISR_8BIT()
4173 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4178 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4180 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4183 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4186 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4190 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4191 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4192 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4193 huart->TxXferCount--; in UART_TxISR_16BIT()
4205 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4210 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4212 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4214 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4217 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4220 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4224 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4226 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4227 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4228 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4245 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4251 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4253 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4255 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4258 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4261 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4265 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4267 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4268 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4269 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4270 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4286 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4289 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4292 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4295 huart->TxISR = NULL; in UART_EndTransmit_IT()
4299 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4302 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4311 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4313 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4317 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4319 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4320 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4321 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4322 huart->RxXferCount--; in UART_RxISR_8BIT()
4324 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4327 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4330 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4333 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4336 huart->RxISR = NULL; in UART_RxISR_8BIT()
4339 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4341 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4344 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4347 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4353 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4356 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4359 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4361 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4364 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4369 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4372 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4380 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4383 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4391 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4402 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4405 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4409 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4411 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4412 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4414 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4415 huart->RxXferCount--; in UART_RxISR_16BIT()
4417 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4420 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4423 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4426 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4429 huart->RxISR = NULL; in UART_RxISR_16BIT()
4432 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4434 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4437 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4440 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4446 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4449 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4452 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4454 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4457 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4462 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4465 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4473 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4476 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4484 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4495 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4497 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4501 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4502 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4503 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4506 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4508 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4511 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4512 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4513 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4514 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4515 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4523 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4525 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4531 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4533 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4539 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4541 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4545 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4551 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4554 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4556 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4560 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4563 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4567 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4570 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4573 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4576 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4578 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4581 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4584 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4590 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4593 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4596 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4598 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4601 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4606 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4609 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4617 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4620 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4631 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4632 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4635 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4638 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4641 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4647 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4658 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4661 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4665 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4666 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4667 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4670 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4672 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4675 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4676 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4678 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4679 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4680 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4688 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4690 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4696 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4698 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4704 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4706 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4710 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4716 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4719 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4721 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4725 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4728 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4732 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4735 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4738 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4741 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4743 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4746 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4749 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4755 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4758 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4761 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4763 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4766 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4771 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4774 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4782 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4785 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4796 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4797 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4800 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4803 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4806 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4812 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()