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()
350 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
352 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_UART_Init()
356 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
358 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL)); in HAL_UART_Init()
362 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
364 CLEAR_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_UART_Init()
368 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
371 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
380 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
383 if (huart == NULL) in HAL_HalfDuplex_Init()
389 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
391 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
394 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
397 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
399 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
401 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
405 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
408 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
412 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
414 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
418 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
420 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
424 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
433 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
435 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_HalfDuplex_Init()
439 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
441 CLEAR_BIT(huart->Instance->CR3, USART_CR3_SCEN); in HAL_HalfDuplex_Init()
445 CLEAR_BIT(huart->Instance->CR3, USART_CR3_IREN); in HAL_HalfDuplex_Init()
450 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
452 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
455 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
470 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
473 if (huart == NULL) in HAL_LIN_Init()
479 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
484 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
489 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
494 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
497 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
500 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
502 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
504 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
508 huart->MspInitCallback(huart); in HAL_LIN_Init()
511 HAL_UART_MspInit(huart); in HAL_LIN_Init()
515 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
517 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
521 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
523 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
527 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
535 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_LIN_Init()
538 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_LIN_Init()
540 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL)); in HAL_LIN_Init()
544 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_LIN_Init()
546 CLEAR_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_LIN_Init()
551 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
554 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
556 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
559 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
582 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
585 if (huart == NULL) in HAL_MultiProcessor_Init()
593 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
596 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
599 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
601 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
603 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
607 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
610 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
614 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
616 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
620 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
622 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
626 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
635 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
637 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_MultiProcessor_Init()
641 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
643 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL)); in HAL_MultiProcessor_Init()
647 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
649 CLEAR_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_MultiProcessor_Init()
656 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
660 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
662 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
665 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
674 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
677 if (huart == NULL) in HAL_UART_DeInit()
683 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
685 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
687 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
689 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
690 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
691 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
694 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
696 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
699 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
702 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
705 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
706 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
707 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
708 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
709 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
711 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
721 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
724 UNUSED(huart); in HAL_UART_MspInit()
736 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
739 UNUSED(huart); in HAL_UART_MspDeInit()
770 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
777 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
782 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
787 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
795 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
799 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
803 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
807 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
811 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
815 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
821 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
828 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
832 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
836 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
842 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
847 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
851 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
855 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
863 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
893 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
897 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
902 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
906 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
910 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
914 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
918 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
922 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
926 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
931 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
938 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
944 …huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
948 …huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
952 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
958 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
963 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
967 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
971 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
979 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
994 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
1000 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1005 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
1007 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
1011 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1025 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1029 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1031 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1035 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1149 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1156 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1166 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1174 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1175 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1180 huart->TxXferSize = Size; in HAL_UART_Transmit()
1181 huart->TxXferCount = Size; in HAL_UART_Transmit()
1184 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1195 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1197 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1200 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1206 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1211 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1214 huart->TxXferCount--; in HAL_UART_Transmit()
1217 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1219 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1225 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1251 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1259 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1269 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1277 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1278 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1279 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1284 huart->RxXferSize = Size; in HAL_UART_Receive()
1285 huart->RxXferCount = Size; in HAL_UART_Receive()
1288 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1289 uhMask = huart->Mask; in HAL_UART_Receive()
1292 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1304 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1306 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1308 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1314 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1319 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1322 huart->RxXferCount--; in HAL_UART_Receive()
1326 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1351 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1354 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1364 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1372 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1373 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1374 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1375 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1377 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1378 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1381 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1383 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1387 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1391 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in HAL_UART_Transmit_IT()
1416 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1419 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1429 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1438 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1441 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1444 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1447 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1470 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1473 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1483 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1491 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1492 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1493 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1495 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1496 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1498 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1501 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1504 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1507 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1510 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1513 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1516 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1519 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1525 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1529 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1556 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1559 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1569 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_DMA()
1578 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1581 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1584 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1587 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1600 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1602 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1603 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1605 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1609 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1611 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1615 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1616 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1619 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1630 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1632 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1635 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1637 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1640 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1643 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1645 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1647 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1650 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1661 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1670 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1671 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1674 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1677 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1680 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1682 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1684 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1687 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1694 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1698 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1701 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1704 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1706 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1708 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1711 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1718 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1736 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1739 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1740 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1743 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1745 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1749 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1752 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1755 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1759 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1761 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1763 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1766 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1775 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1778 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1781 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1785 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1787 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1789 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1792 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1801 huart->TxXferCount = 0U; in HAL_UART_Abort()
1802 huart->RxXferCount = 0U; in HAL_UART_Abort()
1805 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1809 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1812 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1813 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1814 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1816 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1833 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1836 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1839 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1842 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1845 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1849 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1851 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1853 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1856 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1865 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1869 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1886 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1889 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1890 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1893 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1895 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1899 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1902 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1905 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1909 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1911 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1913 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1916 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1925 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1928 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1931 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1934 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1935 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1954 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1959 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
1960 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
1963 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1965 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1971 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1975 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1977 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1981 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
1985 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
1989 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
1991 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
1995 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2000 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2003 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2006 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2012 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2014 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2024 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2027 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2030 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2036 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2038 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2052 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2053 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2056 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2057 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2060 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2063 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2067 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2070 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2071 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2072 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2077 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2080 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2101 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2104 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2107 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2110 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2113 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2117 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2120 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2123 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2129 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2132 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2135 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2140 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2143 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2150 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2153 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2157 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2162 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2165 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2186 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2189 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2190 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2193 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2195 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2199 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2202 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2205 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2209 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2212 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2215 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2221 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2224 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2227 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2230 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2233 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2234 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2239 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2242 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2249 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2252 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2255 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2258 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2259 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2264 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2267 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2279 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2281 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2282 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2283 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2296 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2298 huart->RxISR(huart); in HAL_UART_IRQHandler()
2312 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2314 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2320 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2322 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2328 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2330 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2338 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2340 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2346 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2348 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2352 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2358 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2360 huart->RxISR(huart); in HAL_UART_IRQHandler()
2369 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2370 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2376 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2379 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2382 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2385 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2389 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2392 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2395 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2403 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2406 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2416 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2419 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2429 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2432 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2434 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2443 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2447 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2450 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2456 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2458 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2461 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2464 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2467 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2468 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2472 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2475 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2476 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2478 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2481 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2486 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2490 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2493 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2503 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2504 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2508 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2511 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2514 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2515 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2518 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2520 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2524 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2528 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2531 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2543 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2550 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2553 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2564 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2566 huart->TxISR(huart); in HAL_UART_IRQHandler()
2574 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2585 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2588 UNUSED(huart); in HAL_UART_TxCpltCallback()
2600 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2603 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2615 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2618 UNUSED(huart); in HAL_UART_RxCpltCallback()
2630 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2633 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2645 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2648 UNUSED(huart); in HAL_UART_ErrorCallback()
2660 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2663 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2675 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2678 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2690 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2693 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2707 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2710 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2755 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2758 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2767 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2769 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2772 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2774 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2777 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2779 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2782 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2798 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2800 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2803 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2805 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2808 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2810 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2813 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2829 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2831 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2833 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2836 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2838 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2840 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2849 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2851 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2853 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2856 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2858 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2860 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2869 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2871 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2879 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2881 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2882 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2885 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2888 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2890 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2892 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2902 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2904 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2905 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2908 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2911 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2913 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2915 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2927 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2930 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2932 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2934 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2937 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
2939 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2941 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2973 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2977 temp1 = huart->gState; in HAL_UART_GetState()
2978 temp2 = huart->RxState; in HAL_UART_GetState()
2989 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2991 return huart->ErrorCode; in HAL_UART_GetError()
3011 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3014 …huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3015 …huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3016 …huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3017 …huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3018 …huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3019 …huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3020 …huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3021 …huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3024 …huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3027 …huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3037 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3047 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3048 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3049 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3050 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3052 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3053 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3054 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3055 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3064 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3065 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3070 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3078 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3080 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3081 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3085 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3087 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3112 usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3117 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3150 usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate)); in UART_SetConfig()
3153 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3164 huart->RxISR = NULL; in UART_SetConfig()
3165 huart->TxISR = NULL; in UART_SetConfig()
3175 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3178 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3181 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3183 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3184 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3188 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3190 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3191 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3195 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3197 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3198 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3202 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3204 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3205 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3209 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3211 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3212 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3216 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3218 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3219 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3223 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3225 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3226 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3227 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3229 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3231 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3232 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3237 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3239 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3240 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3249 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3254 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3260 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3263 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3266 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE)); in UART_CheckIdleState()
3268 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3270 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3278 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3281 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3285 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3286 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3288 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3290 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3298 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3299 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3300 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3301 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3303 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3318 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3322 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3333 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3335 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3338 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3343 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3345 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3348 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3352 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3355 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3360 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3362 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3365 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3386 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3388 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3389 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3390 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3391 huart->RxISR = NULL; in UART_Start_Receive_IT()
3394 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3396 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3397 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3400 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3403 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3405 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3409 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3413 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3415 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3419 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE); in UART_Start_Receive_IT()
3435 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3437 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3438 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3440 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3441 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3443 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3446 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3449 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3452 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3455 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3458 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3461 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3464 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3471 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3473 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3477 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3481 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3492 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3495 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3498 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3507 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3510 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3511 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3514 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3516 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3520 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3521 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3524 huart->RxISR = NULL; in UART_EndRxTransfer()
3535 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3540 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3544 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3547 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3554 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3557 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3569 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3573 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3576 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3587 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3592 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3595 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3596 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3600 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3603 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3606 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3608 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3614 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3618 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3622 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3625 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3633 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3636 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3648 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3652 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3656 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3660 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3663 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3671 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3674 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3686 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3688 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3689 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3692 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3695 huart->TxXferCount = 0U; in UART_DMAError()
3696 UART_EndTxTransfer(huart); in UART_DMAError()
3700 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3703 huart->RxXferCount = 0U; in UART_DMAError()
3704 UART_EndRxTransfer(huart); in UART_DMAError()
3707 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3711 huart->ErrorCallback(huart); in UART_DMAError()
3714 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3726 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3727 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3728 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3732 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3735 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3749 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3751 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3754 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3756 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3763 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3764 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3767 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3770 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3774 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3775 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3776 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3781 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3784 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3799 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3801 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3804 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3806 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3813 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3814 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3817 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3820 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3823 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3826 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3827 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3828 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3833 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3836 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3851 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3853 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
3857 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3862 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3865 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3879 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3881 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
3884 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
3887 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
3890 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3891 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3896 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3899 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3910 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
3913 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
3915 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
3918 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_8BIT()
3921 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
3925 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
3926 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
3927 huart->TxXferCount--; in UART_TxISR_8BIT()
3939 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
3944 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
3946 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
3949 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE); in UART_TxISR_16BIT()
3952 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
3956 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
3957 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
3958 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
3959 huart->TxXferCount--; in UART_TxISR_16BIT()
3971 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
3974 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
3977 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
3980 huart->TxISR = NULL; in UART_EndTransmit_IT()
3984 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
3987 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
3996 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
3998 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4002 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4004 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4005 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4006 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4007 huart->RxXferCount--; in UART_RxISR_8BIT()
4009 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4012 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4015 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4018 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4021 huart->RxISR = NULL; in UART_RxISR_8BIT()
4024 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4027 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4030 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4035 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4038 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4041 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4043 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4046 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4051 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4054 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4062 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4065 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4073 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4084 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4087 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4091 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4093 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4094 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4096 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4097 huart->RxXferCount--; in UART_RxISR_16BIT()
4099 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4102 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4105 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4108 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4111 huart->RxISR = NULL; in UART_RxISR_16BIT()
4114 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4117 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4120 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4125 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4128 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4131 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4133 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4136 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4141 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4144 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4152 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4155 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4163 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()