Lines Matching refs:huart

194 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
195 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
206 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
207 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
208 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
209 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
210 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
289 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
292 if (huart == NULL) in HAL_UART_Init()
297 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
300 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
305 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
308 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
311 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
314 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
316 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
318 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
322 huart->MspInitCallback(huart); in HAL_UART_Init()
325 HAL_UART_MspInit(huart); in HAL_UART_Init()
329 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
331 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
335 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
337 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
341 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
349 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
350 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
352 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
355 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
364 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
367 if (huart == NULL) in HAL_HalfDuplex_Init()
373 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
375 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
378 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
381 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
383 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
385 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
389 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
392 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
396 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
398 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
402 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
404 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
408 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
416 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
417 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
420 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
422 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
425 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
439 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
442 if (huart == NULL) in HAL_LIN_Init()
448 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
453 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
458 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
463 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
466 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
469 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
471 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
473 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
477 huart->MspInitCallback(huart); in HAL_LIN_Init()
480 HAL_UART_MspInit(huart); in HAL_LIN_Init()
484 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
486 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
490 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
492 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
496 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
504 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
505 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
508 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
511 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
513 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
516 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
538 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
541 if (huart == NULL) in HAL_MultiProcessor_Init()
549 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
552 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
555 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
557 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
559 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
563 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
566 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
570 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
572 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
576 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
578 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
582 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
590 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
591 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
596 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
600 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
602 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
605 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
614 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
617 if (huart == NULL) in HAL_UART_DeInit()
623 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
625 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
627 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
629 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
630 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
631 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
634 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
636 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
639 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
642 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
645 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
646 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
647 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
648 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
649 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
651 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
661 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
664 UNUSED(huart); in HAL_UART_MspInit()
676 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
679 UNUSED(huart); in HAL_UART_MspDeInit()
710 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
717 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
722 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
727 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
731 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
735 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
739 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
743 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
747 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
751 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
755 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
761 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
768 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
772 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
776 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
782 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
787 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
795 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
803 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
833 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
837 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
842huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
846huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
850huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
854huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
858huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
862huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
866 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
871 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
878huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
884huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
888huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
892 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
898 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
903 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
907 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
911 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
919 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
934 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
945 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
947 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
951 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
965 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
969 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
971 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
975 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1089 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1096 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1103 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1104 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1109 huart->TxXferSize = Size; in HAL_UART_Transmit()
1110 huart->TxXferCount = Size; in HAL_UART_Transmit()
1113 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1124 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1126 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1129 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1135 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1140 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1143 huart->TxXferCount--; in HAL_UART_Transmit()
1146 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1148 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1154 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1175 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1183 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1190 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1191 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1192 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1197 huart->RxXferSize = Size; in HAL_UART_Receive()
1198 huart->RxXferCount = Size; in HAL_UART_Receive()
1201 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1202 uhMask = huart->Mask; in HAL_UART_Receive()
1205 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1217 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1219 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1221 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1227 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1232 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1235 huart->RxXferCount--; in HAL_UART_Receive()
1239 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1259 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1262 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1269 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1270 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1271 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1272 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1274 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1275 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1278 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1280 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1284 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1288 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in HAL_UART_Transmit_IT()
1308 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1311 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1319 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1322 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1325 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1328 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1346 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1349 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1356 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1357 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1358 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1360 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1361 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1363 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1366 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1369 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1372 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1375 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1378 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1381 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1384 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1390 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1394 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1416 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1419 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1427 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1430 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1433 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1436 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1449 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1451 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1452 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1454 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1458 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1460 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1464 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1465 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1468 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1479 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1481 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1484 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1486 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1489 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1492 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1494 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1496 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1499 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1510 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1519 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1520 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1523 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1526 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1529 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1531 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1533 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1536 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1543 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1547 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1550 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1553 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1555 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1557 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1560 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1567 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1585 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1588 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1589 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1592 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1594 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1598 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1601 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1604 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1608 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1610 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1612 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1615 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1624 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1627 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1630 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1634 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1636 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1638 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1641 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1650 huart->TxXferCount = 0U; in HAL_UART_Abort()
1651 huart->RxXferCount = 0U; in HAL_UART_Abort()
1654 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1658 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1661 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1662 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1663 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1665 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1682 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1685 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1688 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1691 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1694 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1698 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1700 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1702 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1705 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1714 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1718 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1735 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1738 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1739 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1742 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1744 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1748 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1751 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1754 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1758 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1760 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1762 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1765 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1774 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1777 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1780 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1783 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1784 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1803 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1808 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
1809 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
1812 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1814 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1820 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1824 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1826 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1830 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1834 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1838 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1840 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
1844 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1849 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1852 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
1855 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1861 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
1863 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1873 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1876 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
1879 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1885 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
1887 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1901 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
1902 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
1905 huart->RxISR = NULL; in HAL_UART_Abort_IT()
1906 huart->TxISR = NULL; in HAL_UART_Abort_IT()
1909 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
1912 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
1916 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
1919 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
1920 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
1921 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
1926 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
1929 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
1950 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
1953 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
1956 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
1959 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
1962 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
1966 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
1969 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
1972 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
1978 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
1981 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
1984 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
1989 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
1992 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
1999 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2002 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2006 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2011 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2014 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2035 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2038 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2039 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2042 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2044 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2048 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2051 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2054 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2058 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2061 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2064 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2070 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2073 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2076 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2079 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2082 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2083 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2088 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2091 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2098 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2101 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2104 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2107 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2108 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2113 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2116 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2128 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2130 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2131 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2132 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2145 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2147 huart->RxISR(huart); in HAL_UART_IRQHandler()
2161 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2163 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2169 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2171 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2177 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2179 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2187 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2189 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2195 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2197 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2201 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2207 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2209 huart->RxISR(huart); in HAL_UART_IRQHandler()
2218 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2219 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2225 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2228 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2231 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2234 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2238 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2241 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2244 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2252 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2255 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2265 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2268 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2278 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2281 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2283 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2292 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2296 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2299 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2305 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2307 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2310 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2313 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2316 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2317 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2321 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2324 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2325 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2327 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2330 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2335 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2339 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2342 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2352 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2353 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2357 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2360 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2363 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2364 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2367 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2369 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2373 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2377 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2380 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2392 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2399 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2402 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2413 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2415 huart->TxISR(huart); in HAL_UART_IRQHandler()
2423 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2434 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2437 UNUSED(huart); in HAL_UART_TxCpltCallback()
2449 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2452 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2464 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2467 UNUSED(huart); in HAL_UART_RxCpltCallback()
2479 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2482 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2494 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2497 UNUSED(huart); in HAL_UART_ErrorCallback()
2509 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2512 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2524 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2527 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2539 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2542 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2556 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2559 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2573 __weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart) in HAL_UARTEx_WakeupCallback() argument
2576 UNUSED(huart); in HAL_UARTEx_WakeupCallback()
2621 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2624 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2633 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2635 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2638 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2640 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2643 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2645 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2648 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2664 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2666 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2669 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2671 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2674 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2676 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2679 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2695 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2697 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2699 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2702 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2704 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2706 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2715 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2717 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2719 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2722 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2724 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2726 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2735 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2737 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2745 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2747 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2748 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2751 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2754 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2756 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2758 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2768 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2770 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2771 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2774 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2777 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2779 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2781 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2792 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2795 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2797 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2799 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2802 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
2804 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2806 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2837 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2841 temp1 = huart->gState; in HAL_UART_GetState()
2842 temp2 = huart->RxState; in HAL_UART_GetState()
2853 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2855 return huart->ErrorCode; in HAL_UART_GetError()
2875 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
2878huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
2879huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
2880huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
2881huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
2882huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
2883huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
2884huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
2885huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
2888huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
2891huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
2901 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
2911 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
2912 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
2913 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
2914 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
2916 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
2917 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
2918 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
2919 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
2928 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
2929 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
2934 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
2942 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
2944 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
2945 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
2949 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
2951 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
2979 usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); in UART_SetConfig()
2984 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3020 usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3023 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3034 huart->RxISR = NULL; in UART_SetConfig()
3035 huart->TxISR = NULL; in UART_SetConfig()
3045 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3048 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3051 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3053 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3054 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3058 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3060 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3061 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3065 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3067 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3068 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3072 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3074 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3075 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3079 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3081 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3082 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3086 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3088 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3089 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3093 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3095 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3096 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3097 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3099 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3101 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3102 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3107 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3109 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3110 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3119 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3124 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3130 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3133 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3136 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); in UART_CheckIdleState()
3138 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3140 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3149 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3152 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3156 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3157 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3159 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3161 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3170 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3171 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3172 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3173 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3175 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3190 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3194 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3205 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3207 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3210 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3215 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3217 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3220 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3224 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3227 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3232 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3234 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3237 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3258 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3260 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3261 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3262 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3263 huart->RxISR = NULL; in UART_Start_Receive_IT()
3266 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3268 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3269 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3272 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3275 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3277 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3281 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3285 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3287 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3291 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3307 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3309 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3310 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3312 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3313 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3315 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3318 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3321 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3324 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3327 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3330 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3333 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3336 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3343 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3345 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3349 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3353 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3364 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3367 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3370 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3379 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3382 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3383 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3386 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3388 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3392 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3393 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3396 huart->RxISR = NULL; in UART_EndRxTransfer()
3407 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3412 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3416 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3419 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3426 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3429 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3441 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3445 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3448 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3459 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3464 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3467 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3468 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3472 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3475 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3478 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3480 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3486 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3490 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3494 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3497 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3505 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3508 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3520 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3524 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3528 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3532 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3535 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3543 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3546 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3558 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3560 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3561 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3564 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3567 huart->TxXferCount = 0U; in UART_DMAError()
3568 UART_EndTxTransfer(huart); in UART_DMAError()
3572 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3575 huart->RxXferCount = 0U; in UART_DMAError()
3576 UART_EndRxTransfer(huart); in UART_DMAError()
3579 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3583 huart->ErrorCallback(huart); in UART_DMAError()
3586 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3598 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3599 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3600 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3604 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3607 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3621 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3623 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3626 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3628 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3635 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3636 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3639 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3642 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3646 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3647 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3648 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3653 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3656 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3671 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3673 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3676 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3678 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3685 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3686 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3689 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3692 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3695 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3698 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3699 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3700 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3705 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3708 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3723 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3725 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
3729 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3734 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3737 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3751 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3753 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
3756 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
3759 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
3762 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3763 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3768 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3771 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3782 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
3785 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
3787 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
3790 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_8BIT()
3793 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
3797 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
3798 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
3799 huart->TxXferCount--; in UART_TxISR_8BIT()
3811 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
3816 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
3818 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
3821 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_16BIT()
3824 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
3828 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
3829 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
3830 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
3831 huart->TxXferCount--; in UART_TxISR_16BIT()
3843 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
3846 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
3849 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
3852 huart->TxISR = NULL; in UART_EndTransmit_IT()
3856 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
3859 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
3868 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
3870 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
3874 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
3876 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
3877 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
3878 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
3879 huart->RxXferCount--; in UART_RxISR_8BIT()
3881 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
3884 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
3887 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
3890 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
3893 huart->RxISR = NULL; in UART_RxISR_8BIT()
3896 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
3899 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
3902 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
3907 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
3910 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
3913 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
3915 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
3918 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
3923 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
3926 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
3934 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
3937 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
3945 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
3956 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
3959 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
3963 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
3965 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
3966 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
3968 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
3969 huart->RxXferCount--; in UART_RxISR_16BIT()
3971 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
3974 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
3977 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
3980 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
3983 huart->RxISR = NULL; in UART_RxISR_16BIT()
3986 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
3989 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
3992 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
3997 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4000 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4003 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4005 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4008 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4013 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4016 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4024 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4027 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4035 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()