Lines Matching refs:huart
196 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
197 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
208 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
209 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
210 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
211 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
212 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
291 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
294 if (huart == NULL) in HAL_UART_Init()
299 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
302 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
307 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_Init()
310 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
313 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
316 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
318 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
320 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
324 huart->MspInitCallback(huart); in HAL_UART_Init()
327 HAL_UART_MspInit(huart); in HAL_UART_Init()
331 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
333 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
336 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
341 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
343 UART_AdvFeatureConfig(huart); 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()
401 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
406 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
408 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
414 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
415 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
418 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
420 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
423 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
437 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
440 if (huart == NULL) in HAL_LIN_Init()
446 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
451 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
456 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
461 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
464 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
467 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
469 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
471 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
475 huart->MspInitCallback(huart); in HAL_LIN_Init()
478 HAL_UART_MspInit(huart); in HAL_LIN_Init()
482 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
484 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
487 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
492 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
494 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
500 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
501 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
504 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
507 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
509 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
512 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
534 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
537 if (huart == NULL) in HAL_MultiProcessor_Init()
545 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
548 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
551 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
553 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
555 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
559 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
562 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
566 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
568 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
571 if (UART_SetConfig(huart) == HAL_ERROR) 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()
584 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
585 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
590 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
594 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
596 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
599 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
608 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
611 if (huart == NULL) in HAL_UART_DeInit()
617 assert_param((IS_UART_INSTANCE(huart->Instance)) || (IS_LPUART_INSTANCE(huart->Instance))); in HAL_UART_DeInit()
619 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
621 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
623 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
624 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
625 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
628 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
630 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
633 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
636 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
639 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
640 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
641 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
642 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
643 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
645 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
655 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
658 UNUSED(huart); in HAL_UART_MspInit()
670 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
673 UNUSED(huart); in HAL_UART_MspDeInit()
704 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
711 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
716 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
721 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
725 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
729 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
733 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
737 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
741 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
745 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
749 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
753 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
758 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
762 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
766 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
772 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
777 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
781 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
793 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
823 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
827 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
832 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
836 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
840 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
844 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
848 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
852 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
856 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
861 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
866 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
870 …huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
874 …huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
878 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
884 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
889 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
893 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
897 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
905 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
920 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
926 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
932 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
934 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
936 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
946 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
957 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
962 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
964 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
966 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
970 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
976 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1086 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1093 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1103 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1111 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1112 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1117 huart->TxXferSize = Size; in HAL_UART_Transmit()
1118 huart->TxXferCount = Size; in HAL_UART_Transmit()
1121 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1132 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1134 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1137 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1143 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1148 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1151 huart->TxXferCount--; in HAL_UART_Transmit()
1154 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1156 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1162 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1188 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1196 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1206 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1214 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1215 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1216 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1221 huart->RxXferSize = Size; in HAL_UART_Receive()
1222 huart->RxXferCount = Size; in HAL_UART_Receive()
1225 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1226 uhMask = huart->Mask; in HAL_UART_Receive()
1229 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1241 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1243 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1245 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1251 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1256 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1259 huart->RxXferCount--; in HAL_UART_Receive()
1263 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1288 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1291 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1301 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1309 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1310 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1311 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1312 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1314 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1315 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1318 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1320 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1324 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1328 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in HAL_UART_Transmit_IT()
1353 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1356 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1366 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1375 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1377 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_IT()
1380 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1383 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1387 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1410 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1413 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1423 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1431 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1432 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1433 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1435 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1436 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1438 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1441 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1444 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1447 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1450 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1453 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1456 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1459 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1465 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1469 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1496 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1499 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1509 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_DMA()
1518 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1520 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_Receive_DMA()
1523 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1526 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1530 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1543 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1545 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1546 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1548 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1552 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1554 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1558 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1559 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1562 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1573 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1575 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1578 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1580 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1583 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1586 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1588 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1590 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1593 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1604 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1613 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1614 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1617 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1620 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1623 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1625 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1627 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1630 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1637 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1641 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1644 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1647 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1649 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1651 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1654 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1661 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1679 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1682 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1683 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1686 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1688 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1692 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1695 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1698 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1702 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1704 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1706 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1709 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1718 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1721 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1724 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1728 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1730 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1732 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1735 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1744 huart->TxXferCount = 0U; in HAL_UART_Abort()
1745 huart->RxXferCount = 0U; in HAL_UART_Abort()
1748 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1752 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1755 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1756 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1757 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1759 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1776 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1779 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1782 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1785 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1788 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1792 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1794 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1796 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1799 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1808 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1812 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1829 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1832 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1833 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1836 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1838 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1842 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1845 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1848 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1852 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1854 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1856 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1859 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1868 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1871 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1874 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1877 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1878 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1897 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1902 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
1903 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
1906 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1908 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1914 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1918 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1920 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1924 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1928 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1932 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1934 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
1938 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1943 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1946 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
1949 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1955 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
1957 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1967 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1970 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
1973 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1979 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
1981 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1995 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
1996 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
1999 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2000 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2003 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2006 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2010 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2013 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2014 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2015 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2020 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2023 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2044 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2047 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2050 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2053 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2056 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2060 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2063 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2066 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2072 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2075 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2078 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2083 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2086 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2093 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2096 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2100 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2105 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2108 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2129 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2132 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2133 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2136 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2138 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2142 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2145 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2148 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2152 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2155 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2158 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2164 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2167 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2170 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2173 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2176 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2177 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2182 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2185 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2192 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2195 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2198 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2201 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2202 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2207 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2210 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2222 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2224 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2225 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2226 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2239 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2241 huart->RxISR(huart); in HAL_UART_IRQHandler()
2255 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2257 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2263 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2265 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2271 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2273 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2281 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2283 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2289 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2291 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2295 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2301 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2303 huart->RxISR(huart); in HAL_UART_IRQHandler()
2312 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2313 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2319 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2322 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2325 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2328 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2332 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2335 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2338 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2346 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2349 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2359 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2362 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2372 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2375 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2377 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2386 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2390 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2393 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2399 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2401 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2404 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2407 if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2410 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2411 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2415 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2418 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2419 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2421 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2424 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2429 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2433 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2436 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2446 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2447 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2451 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2454 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2457 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2458 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2461 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2463 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2467 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2471 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2474 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2484 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2491 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2494 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2503 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2505 huart->TxISR(huart); in HAL_UART_IRQHandler()
2513 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2524 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2527 UNUSED(huart); in HAL_UART_TxCpltCallback()
2539 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2542 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2554 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2557 UNUSED(huart); in HAL_UART_RxCpltCallback()
2569 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2572 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2584 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2587 UNUSED(huart); in HAL_UART_ErrorCallback()
2599 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2602 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2614 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2617 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2629 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2632 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2646 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2649 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2694 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2696 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_ReceiverTimeout_Config()
2699 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2709 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2711 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_EnableReceiverTimeout()
2713 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2716 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2718 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2721 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2723 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2726 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2747 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2749 if (!(IS_LPUART_INSTANCE(huart->Instance))) in HAL_UART_DisableReceiverTimeout()
2751 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2754 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2756 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2759 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2761 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2764 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2785 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2787 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2789 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2792 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2794 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2796 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2805 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2807 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2809 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2812 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2814 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2816 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2825 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2827 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2835 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2837 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2838 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2841 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2844 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2846 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2848 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2858 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2860 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2861 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2864 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2867 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2869 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2871 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2882 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2885 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2887 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2889 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2892 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
2894 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2896 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2927 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2931 temp1 = huart->gState; in HAL_UART_GetState()
2932 temp2 = huart->RxState; in HAL_UART_GetState()
2943 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2945 return huart->ErrorCode; in HAL_UART_GetError()
2965 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
2968 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
2969 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
2970 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
2971 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
2972 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
2973 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
2974 …huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
2975 …huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
2976 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
2977 …huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
2987 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
2997 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
2998 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
2999 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3001 assert_param(IS_LPUART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3005 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3006 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3009 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3010 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3011 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3012 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3021 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3022 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3027 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3035 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3037 if (!(UART_INSTANCE_LOWPOWER(huart))) in UART_SetConfig()
3039 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3041 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3045 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3048 if (UART_INSTANCE_LOWPOWER(huart)) in UART_SetConfig()
3083 if ((pclk < (3U * huart->Init.BaudRate)) || in UART_SetConfig()
3084 (pclk > (4096U * huart->Init.BaudRate))) in UART_SetConfig()
3090 usartdiv = (uint32_t)(UART_DIV_LPUART(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3093 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3103 else if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3138 usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3143 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3186 usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3189 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3200 huart->RxISR = NULL; in UART_SetConfig()
3201 huart->TxISR = NULL; in UART_SetConfig()
3211 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3214 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3217 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3219 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3220 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3224 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3226 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3227 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3231 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3233 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3234 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3238 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3240 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3241 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3245 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3247 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3248 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3252 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3254 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3255 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3259 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3261 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3262 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3263 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3265 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3267 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3268 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3273 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3275 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3276 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3285 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3290 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3296 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3299 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3302 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); in UART_CheckIdleState()
3304 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3306 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3314 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3317 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3321 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3322 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3324 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3326 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3334 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3335 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3336 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3337 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3339 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3354 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3358 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3369 if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) in UART_WaitOnFlagUntilTimeout()
3371 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3374 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3379 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3381 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3384 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3388 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3391 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3396 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3398 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3401 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3422 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3424 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3425 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3426 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3427 huart->RxISR = NULL; in UART_Start_Receive_IT()
3430 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3432 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3433 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3436 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3439 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3441 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3445 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3449 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3451 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3455 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3471 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3473 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3474 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3476 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3477 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3479 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3482 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3485 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3488 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3491 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3494 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3497 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3500 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3507 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3509 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3513 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3517 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3528 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3531 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3534 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3543 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3546 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3547 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3550 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3552 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3556 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3557 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3560 huart->RxISR = NULL; in UART_EndRxTransfer()
3571 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3576 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3580 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3583 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3590 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3593 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3605 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3609 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3612 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3623 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3628 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3631 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3632 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3636 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3639 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3642 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3644 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3650 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3654 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3658 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3661 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3669 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3672 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3684 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3688 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3692 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3696 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3699 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3707 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3710 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3722 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3724 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3725 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3728 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3731 huart->TxXferCount = 0U; in UART_DMAError()
3732 UART_EndTxTransfer(huart); in UART_DMAError()
3736 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3739 huart->RxXferCount = 0U; in UART_DMAError()
3740 UART_EndRxTransfer(huart); in UART_DMAError()
3743 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3747 huart->ErrorCallback(huart); in UART_DMAError()
3750 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3762 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3763 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3764 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3768 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3771 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3785 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3787 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3790 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3792 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3799 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3800 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3803 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3806 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3810 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3811 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3812 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3817 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3820 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3835 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3837 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3840 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3842 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3849 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3850 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3853 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3856 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3859 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3862 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3863 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3864 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3869 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3872 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3887 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3889 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
3893 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3898 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3901 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3915 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3917 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
3920 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
3923 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
3926 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3927 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3932 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3935 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3946 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
3949 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
3951 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
3954 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_8BIT()
3957 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
3961 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
3962 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
3963 huart->TxXferCount--; in UART_TxISR_8BIT()
3975 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
3980 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
3982 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
3985 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_16BIT()
3988 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
3992 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
3993 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
3994 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
3995 huart->TxXferCount--; in UART_TxISR_16BIT()
4007 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4010 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4013 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4016 huart->TxISR = NULL; in UART_EndTransmit_IT()
4020 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4023 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4032 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4034 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4038 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4040 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4041 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4042 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4043 huart->RxXferCount--; in UART_RxISR_8BIT()
4045 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4048 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4051 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4054 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4057 huart->RxISR = NULL; in UART_RxISR_8BIT()
4060 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4062 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_8BIT()
4065 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4068 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4074 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4077 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4080 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4082 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4085 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4090 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4093 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4101 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4104 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4112 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4123 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4126 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4130 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4132 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4133 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4135 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4136 huart->RxXferCount--; in UART_RxISR_16BIT()
4138 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4141 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4144 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4147 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4150 huart->RxISR = NULL; in UART_RxISR_16BIT()
4153 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4155 if (!(IS_LPUART_INSTANCE(huart->Instance))) in UART_RxISR_16BIT()
4158 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4161 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4167 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4170 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4173 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4175 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4178 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4183 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4186 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4194 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4197 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4205 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()