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()
1135 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Transmit()
1137 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit()
1141 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1142 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1147 huart->TxXferSize = Size; in HAL_UART_Transmit()
1148 huart->TxXferCount = Size; in HAL_UART_Transmit()
1151 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1162 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1164 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1167 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1173 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1178 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1181 huart->TxXferCount--; in HAL_UART_Transmit()
1184 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1186 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1192 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1217 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1225 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1234 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Receive()
1236 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Receive()
1240 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1241 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1242 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1247 huart->RxXferSize = Size; in HAL_UART_Receive()
1248 huart->RxXferCount = Size; in HAL_UART_Receive()
1251 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1252 uhMask = huart->Mask; in HAL_UART_Receive()
1255 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1267 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1269 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1271 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1277 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1282 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1285 huart->RxXferCount--; in HAL_UART_Receive()
1289 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1309 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1312 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1321 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Transmit_IT()
1323 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_IT()
1327 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1328 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1329 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1330 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1332 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1333 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1336 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1339 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1341 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1345 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1349 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1354 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1356 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1360 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1364 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1385 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1388 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1396 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1400 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Receive_IT()
1402 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Receive_IT()
1406 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1409 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1412 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1416 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1435 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1441 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1448 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1449 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1450 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1452 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1453 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1457 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1460 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1463 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1466 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1469 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1472 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1476 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1482 if ((huart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_UART_Transmit_DMA()
1484 … if ((huart->hdmatx->LinkedListQueue != NULL) && (huart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_UART_Transmit_DMA()
1487 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_UART_Transmit_DMA()
1490huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in HAL_UART_Transmit_DMA()
1493 huart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_UART_Transmit_DMA()
1494 (uint32_t)&huart->Instance->TDR; in HAL_UART_Transmit_DMA()
1497 status = HAL_DMAEx_List_Start_IT(huart->hdmatx); in HAL_UART_Transmit_DMA()
1508 …status = HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->… in HAL_UART_Transmit_DMA()
1514 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1517 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1524 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1529 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1551 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1554 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1562 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1564 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1567 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1570 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1574 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1587 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1589 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1590 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1592 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1596 if (huart->hdmatx != NULL) in HAL_UART_DMAPause()
1600 huart->hdmatx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1602 if (HAL_DMAEx_Suspend(huart->hdmatx) != HAL_OK) in HAL_UART_DMAPause()
1604 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1607 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1614 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1618 if (huart->hdmarx != NULL) in HAL_UART_DMAPause()
1621 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1622 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1626 huart->hdmarx->XferSuspendCallback = NULL; in HAL_UART_DMAPause()
1628 if (HAL_DMAEx_Suspend(huart->hdmarx) != HAL_OK) in HAL_UART_DMAPause()
1630 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAPause()
1633 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAPause()
1649 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1651 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1654 if (huart->hdmatx != NULL) in HAL_UART_DMAResume()
1656 if (HAL_DMAEx_Resume(huart->hdmatx) != HAL_OK) in HAL_UART_DMAResume()
1659 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1665 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1668 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1671 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1673 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1675 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1678 if (huart->hdmarx != NULL) in HAL_UART_DMAResume()
1680 if (HAL_DMAEx_Resume(huart->hdmarx) != HAL_OK) in HAL_UART_DMAResume()
1683 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAResume()
1698 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1707 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1708 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1711 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1714 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1717 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1719 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1721 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1724 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1731 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1735 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1738 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1741 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1743 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1745 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1748 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1755 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1774 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1777 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1779 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1782 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1784 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1789 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1793 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1797 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1801 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1803 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1805 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1808 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1817 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1821 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1825 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1829 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1831 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1833 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1836 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1846 huart->TxXferCount = 0U; in HAL_UART_Abort()
1847 huart->RxXferCount = 0U; in HAL_UART_Abort()
1850 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1853 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1855 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1859 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1862 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1863 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1864 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1866 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1883 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1886 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1887 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1891 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1895 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1899 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1903 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1905 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1907 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1910 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1920 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1923 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1925 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1929 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1946 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1949 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1950 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1953 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1955 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1960 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1964 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1968 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1972 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1974 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1976 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1979 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1989 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1992 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1995 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1998 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1999 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
2018 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2023 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
2025 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
2028 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
2030 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2037 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2041 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2043 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2047 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2051 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2055 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2057 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2061 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2066 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2070 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2074 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2080 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2082 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2092 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2096 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2100 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2106 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2108 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2123 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2124 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2127 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2128 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2131 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2134 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2137 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2139 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2143 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2146 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2147 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2148 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2153 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2156 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2177 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2180 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2181 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2185 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2189 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2193 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2197 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2200 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2203 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2209 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2212 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2215 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2220 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2223 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2231 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2234 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2237 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2239 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2243 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2248 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2251 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2272 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2275 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2276 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2279 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2281 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2286 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2290 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2294 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2298 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2301 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2304 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2310 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2313 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2316 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2319 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2322 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2323 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2328 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2331 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2339 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2342 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2345 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2348 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2349 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2354 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2357 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2369 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2371 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2372 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2373 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2387 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2389 huart->RxISR(huart); in HAL_UART_IRQHandler()
2403 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2405 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2411 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2413 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2419 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2421 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2429 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2431 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2437 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2439 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2443 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2450 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2452 huart->RxISR(huart); in HAL_UART_IRQHandler()
2461 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2462 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2468 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2472 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2476 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2480 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2484 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2487 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2490 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2498 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2501 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2512 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2515 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2525 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2528 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2530 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2539 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2543 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2547 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2553 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2555 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2558 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2561 if (huart->hdmarx->Mode != DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2564 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2565 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2570 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2574 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2575 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2577 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2580 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2585 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2589 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2592 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2599 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2601 if (huart->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) in HAL_UART_IRQHandler()
2605 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2609 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2612 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2625 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2626 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2630 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2633 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2636 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2637 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2640 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2642 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2646 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2650 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2653 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2665 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2672 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2675 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2685 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2687 huart->TxISR(huart); in HAL_UART_IRQHandler()
2695 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2704 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2707 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2717 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2720 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2731 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2734 UNUSED(huart); in HAL_UART_TxCpltCallback()
2746 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2749 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2761 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2764 UNUSED(huart); in HAL_UART_RxCpltCallback()
2776 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2779 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2791 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2794 UNUSED(huart); in HAL_UART_ErrorCallback()
2806 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2809 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2821 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2824 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2836 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2839 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2853 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2856 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2901 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2903 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2906 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2916 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2918 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2920 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2923 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2925 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2928 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2930 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2933 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2954 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2956 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2958 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2961 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2963 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2966 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2968 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2971 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2992 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2994 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2996 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2999 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
3001 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
3003 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
3012 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
3014 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
3016 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
3019 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
3021 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
3023 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
3032 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
3034 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
3042 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
3044 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3045 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
3048 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
3051 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
3053 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
3055 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
3065 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
3067 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3068 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3071 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3074 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3076 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3078 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3089 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3092 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3094 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3096 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3099 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3101 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3103 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3134 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3138 temp1 = huart->gState; in HAL_UART_GetState()
3139 temp2 = huart->RxState; in HAL_UART_GetState()
3150 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3152 return huart->ErrorCode; in HAL_UART_GetError()
3172 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3175huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3176huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3177huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3178huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3179huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3180huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3181huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3182huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3183huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3184huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3185huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3186huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3196 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3207 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3208 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3209 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3211 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3215 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3216 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3219 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3220 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3221 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3222 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3223 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3232 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3233 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3238 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3246 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3248 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3250 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3252 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3257 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3260 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3263 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3272 lpuart_ker_ck_pres = (pclk / UARTPrescTable[huart->Init.ClockPrescaler]); in UART_SetConfig()
3275 if ((lpuart_ker_ck_pres < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3276 (lpuart_ker_ck_pres > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3284 … usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3287 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3298 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3305 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3310 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3325 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3328 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3338 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3339 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3342 huart->RxISR = NULL; in UART_SetConfig()
3343 huart->TxISR = NULL; in UART_SetConfig()
3353 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3356 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3359 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3361 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3362 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3366 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3368 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3369 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3373 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3375 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3376 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3380 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3382 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3383 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3387 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3389 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3390 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3395 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3397 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3398 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3403 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3405 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3406 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3407 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3409 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3411 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3412 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3417 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3419 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3420 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3429 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3434 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3440 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3443 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3446 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3448 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3450 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3458 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3461 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3465 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3466 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3468 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3470 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3478 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3479 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3480 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3481 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3483 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3498 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3502 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3513 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3515 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3518 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3523 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3525 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3528 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3532 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3535 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3540 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3542 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3545 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3566 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3568 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3569 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3570 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3571 huart->RxISR = NULL; in UART_Start_Receive_IT()
3574 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3576 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3577 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3580 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3583 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3586 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3588 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3592 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3596 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3598 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3600 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3605 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3607 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3611 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3615 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3617 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3621 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3639 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3644 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3645 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3647 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3648 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3650 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3653 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3656 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3659 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3662 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3666 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_DMA()
3672 if ((huart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in UART_Start_Receive_DMA()
3674 … if ((huart->hdmarx->LinkedListQueue != NULL) && (huart->hdmarx->LinkedListQueue->Head != NULL)) in UART_Start_Receive_DMA()
3677 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in UART_Start_Receive_DMA()
3680 huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in UART_Start_Receive_DMA()
3681 (uint32_t)&huart->Instance->RDR; in UART_Start_Receive_DMA()
3684huart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)huart->p… in UART_Start_Receive_DMA()
3687 status = HAL_DMAEx_List_Start_IT(huart->hdmarx); in UART_Start_Receive_DMA()
3698 …status = HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuff… in UART_Start_Receive_DMA()
3704 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3707 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3714 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3716 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3720 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3724 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3735 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3738 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3739 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3742 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3752 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3755 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3756 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3759 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3761 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3765 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3766 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3769 huart->RxISR = NULL; in UART_EndRxTransfer()
3781 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3786 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3791 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3795 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3802 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3805 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3817 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3821 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3824 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3835 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3840 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3843 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3844 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3849 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3853 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3856 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3858 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3864 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3868 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3872 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3875 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3883 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3886 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3898 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3902 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3906 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3910 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3913 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3921 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3924 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3936 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3938 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3939 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3942 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3945 huart->TxXferCount = 0U; in UART_DMAError()
3946 UART_EndTxTransfer(huart); in UART_DMAError()
3950 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3953 huart->RxXferCount = 0U; in UART_DMAError()
3954 UART_EndRxTransfer(huart); in UART_DMAError()
3957 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3961 huart->ErrorCallback(huart); in UART_DMAError()
3964 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3976 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3977 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3981 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3984 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3998 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
4000 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
4003 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
4005 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
4012 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
4013 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
4016 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
4019 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
4022 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
4024 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
4028 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4029 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
4030 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
4035 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4038 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
4053 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
4055 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
4058 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
4060 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
4067 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
4068 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
4071 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
4074 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
4077 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
4080 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4081 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
4082 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
4087 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4090 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
4105 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
4107 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
4110 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
4112 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
4116 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
4121 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4124 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4138 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4140 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4143 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4146 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4149 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4150 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4155 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4158 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4170 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4173 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4175 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4178 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4181 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4185 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4186 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4187 huart->TxXferCount--; in UART_TxISR_8BIT()
4199 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4204 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4206 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4209 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4212 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4216 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4217 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4218 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4219 huart->TxXferCount--; in UART_TxISR_16BIT()
4231 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4236 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4238 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4240 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4243 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4246 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4250 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4252 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4253 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4254 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4271 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4277 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4279 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4281 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4284 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4287 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4291 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4293 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4294 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4295 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4296 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4312 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4315 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4318 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4321 huart->TxISR = NULL; in UART_EndTransmit_IT()
4325 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4328 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4337 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4339 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4343 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4345 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4346 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4347 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4348 huart->RxXferCount--; in UART_RxISR_8BIT()
4350 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4353 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4356 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4359 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4362 huart->RxISR = NULL; in UART_RxISR_8BIT()
4365 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4367 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4370 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4373 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4379 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4382 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4385 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4387 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4390 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4395 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4398 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4406 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4409 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4417 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4428 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4431 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4435 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4437 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4438 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4440 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4441 huart->RxXferCount--; in UART_RxISR_16BIT()
4443 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4446 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4449 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4452 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4455 huart->RxISR = NULL; in UART_RxISR_16BIT()
4458 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4460 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4463 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4466 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4472 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4475 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4478 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4480 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4483 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4488 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4491 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4499 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4502 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4510 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4521 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4523 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4527 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4528 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4529 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4532 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4534 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4537 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4538 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4539 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4540 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4541 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4549 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4551 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4557 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4559 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4565 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4567 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4571 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4577 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4580 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4582 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4586 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4589 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4593 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4596 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4599 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4602 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4604 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT_FIFOEN()
4607 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4610 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4616 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4619 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4622 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4624 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4627 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4632 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4635 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4643 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4646 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4657 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4658 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4661 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4664 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4667 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4673 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4684 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4687 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4691 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4692 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4693 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4696 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4698 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4701 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4702 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4704 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4705 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4706 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4714 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4716 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4722 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4724 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4730 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4732 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4736 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4742 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4745 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4747 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4751 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4754 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4758 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4761 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4764 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4767 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4769 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT_FIFOEN()
4772 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4775 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4781 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4784 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4787 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4789 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4792 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4797 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4800 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4808 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4811 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4822 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4823 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4826 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4829 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4832 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4838 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()