Lines Matching refs:huart

286 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart);
288 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
289 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
300 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart);
301 static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart);
302 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart);
303 static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag…
305 static void UART_SetConfig(UART_HandleTypeDef *huart);
353 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
356 if (huart == NULL) in HAL_UART_Init()
362 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
365 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
366 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in HAL_UART_Init()
370 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
372 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_UART_Init()
373 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_UART_Init()
375 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
378 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
381 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
383 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
385 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
389 huart->MspInitCallback(huart); in HAL_UART_Init()
392 HAL_UART_MspInit(huart); in HAL_UART_Init()
396 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
399 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
402 UART_SetConfig(huart); in HAL_UART_Init()
407 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
408 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
411 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
414 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Init()
415 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Init()
416 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Init()
417 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_Init()
429 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
432 if (huart == NULL) in HAL_HalfDuplex_Init()
438 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
439 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_HalfDuplex_Init()
440 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_HalfDuplex_Init()
442 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
445 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
448 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
450 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
452 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
456 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
459 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
463 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
466 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
469 UART_SetConfig(huart); in HAL_HalfDuplex_Init()
474 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
475 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
478 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
481 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
484 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_HalfDuplex_Init()
485 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
486 huart->RxState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
487 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_HalfDuplex_Init()
503 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
506 if (huart == NULL) in HAL_LIN_Init()
512 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
516 assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); in HAL_LIN_Init()
517 assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); in HAL_LIN_Init()
519 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
522 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
525 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
527 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
529 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
533 huart->MspInitCallback(huart); in HAL_LIN_Init()
536 HAL_UART_MspInit(huart); in HAL_LIN_Init()
540 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
543 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
546 UART_SetConfig(huart); in HAL_LIN_Init()
551 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); in HAL_LIN_Init()
552 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
555 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
558 CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); in HAL_LIN_Init()
559 SET_BIT(huart->Instance->CR2, BreakDetectLength); in HAL_LIN_Init()
562 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
565 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_LIN_Init()
566 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_Init()
567 huart->RxState = HAL_UART_STATE_READY; in HAL_LIN_Init()
568 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_LIN_Init()
585 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
588 if (huart == NULL) in HAL_MultiProcessor_Init()
594 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_Init()
599 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_MultiProcessor_Init()
600 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_MultiProcessor_Init()
602 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
605 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
608 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
610 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
612 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
616 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
619 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
623 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
626 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
629 UART_SetConfig(huart); in HAL_MultiProcessor_Init()
634 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
635 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
638 CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); in HAL_MultiProcessor_Init()
639 SET_BIT(huart->Instance->CR2, Address); in HAL_MultiProcessor_Init()
642 CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); in HAL_MultiProcessor_Init()
643 SET_BIT(huart->Instance->CR1, WakeUpMethod); in HAL_MultiProcessor_Init()
646 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
649 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_MultiProcessor_Init()
650 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
651 huart->RxState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
652 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_Init()
663 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
666 if (huart == NULL) in HAL_UART_DeInit()
672 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
674 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
677 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
680 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
682 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
685 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
688 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
691 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
692 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
693 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
694 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
695 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
698 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
709 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
712 UNUSED(huart); in HAL_UART_MspInit()
724 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
727 UNUSED(huart); in HAL_UART_MspDeInit()
755 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
763 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
768 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
773 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
777 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
781 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
789 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
793 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
797 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
801 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
805 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
809 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
814 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
821 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
826 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
830 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
835 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
845 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
875 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
879 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
884huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
888huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
892huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
896huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
900huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
904huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
908huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_UART_UnRegisterCallback()
912huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_UART_UnRegisterCallback()
916huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
920huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
925 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
932 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
937 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
941 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
946 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
956 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
972 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
978 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
984 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
986 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
988 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
992 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
998 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
1009 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1014 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1016 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1018 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1022 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1028 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1129 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1136 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1143 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1144 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1149 huart->TxXferSize = Size; in HAL_UART_Transmit()
1150 huart->TxXferCount = Size; in HAL_UART_Transmit()
1153 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1164 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1166 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1168 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1174 huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1179 huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1182 huart->TxXferCount--; in HAL_UART_Transmit()
1185 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1187 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1193 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1215 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1222 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1229 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1230 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1231 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1236 huart->RxXferSize = Size; in HAL_UART_Receive()
1237 huart->RxXferCount = Size; in HAL_UART_Receive()
1240 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1252 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1254 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1256 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1262 *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); in HAL_UART_Receive()
1267 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UART_Receive()
1269 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UART_Receive()
1273 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UART_Receive()
1277 huart->RxXferCount--; in HAL_UART_Receive()
1281 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1302 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1305 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1312 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1313 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1314 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1316 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1317 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1320 __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); in HAL_UART_Transmit_IT()
1341 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1344 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1352 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1354 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1373 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1378 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1385 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1386 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1387 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1389 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1390 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1393 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1396 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1399 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1402 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1406 HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); in HAL_UART_Transmit_DMA()
1409 __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); in HAL_UART_Transmit_DMA()
1413 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1435 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1438 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1446 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1448 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1462 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1466 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1467 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAPause()
1470 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1473 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1474 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAPause()
1477 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1478 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1481 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1493 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1496 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1499 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1502 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1505 __HAL_UART_CLEAR_OREFLAG(huart); in HAL_UART_DMAResume()
1508 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1510 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1512 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1515 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1527 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1537 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1538 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAStop()
1540 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1543 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1545 HAL_DMA_Abort(huart->hdmatx); in HAL_UART_DMAStop()
1547 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1551 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1552 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAStop()
1554 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1557 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1559 HAL_DMA_Abort(huart->hdmarx); in HAL_UART_DMAStop()
1561 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1582 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size… in HAL_UARTEx_ReceiveToIdle() argument
1590 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle()
1597 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UARTEx_ReceiveToIdle()
1598 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UARTEx_ReceiveToIdle()
1599 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle()
1600 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle()
1605 huart->RxXferSize = Size; in HAL_UARTEx_ReceiveToIdle()
1606 huart->RxXferCount = Size; in HAL_UARTEx_ReceiveToIdle()
1609 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UARTEx_ReceiveToIdle()
1624 while (huart->RxXferCount > 0U) in HAL_UARTEx_ReceiveToIdle()
1627 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in HAL_UARTEx_ReceiveToIdle()
1630 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle()
1636 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UARTEx_ReceiveToIdle()
1637 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1644 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) in HAL_UARTEx_ReceiveToIdle()
1648 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in HAL_UARTEx_ReceiveToIdle()
1653 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UARTEx_ReceiveToIdle()
1655 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UARTEx_ReceiveToIdle()
1659 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UARTEx_ReceiveToIdle()
1666 huart->RxXferCount--; in HAL_UARTEx_ReceiveToIdle()
1674 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1682 *RxLen = huart->RxXferSize - huart->RxXferCount; in HAL_UARTEx_ReceiveToIdle()
1684 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1707 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S… in HAL_UARTEx_ReceiveToIdle_IT() argument
1712 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_IT()
1720 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_IT()
1721 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_IT()
1723 status = UART_Start_Receive_IT(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_IT()
1728 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_IT()
1730 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_IT()
1731 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_IT()
1767 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t … in HAL_UARTEx_ReceiveToIdle_DMA() argument
1772 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_DMA()
1780 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_DMA()
1781 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_DMA()
1783 status = UART_Start_Receive_DMA(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_DMA()
1786 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_DMA()
1788 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_DMA()
1789 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_DMA()
1832 HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart) in HAL_UARTEx_GetRxEventType() argument
1835 return(huart->RxEventType); in HAL_UARTEx_GetRxEventType()
1850 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1853 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1854 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1857 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1859 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1863 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1865 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1868 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1872 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1874 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1876 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1879 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1888 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1890 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1893 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1897 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1899 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1901 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1904 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1913 huart->TxXferCount = 0x00U; in HAL_UART_Abort()
1914 huart->RxXferCount = 0x00U; in HAL_UART_Abort()
1917 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1920 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1921 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1922 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1939 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1942 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1945 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1947 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1950 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1954 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1956 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1958 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1961 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1970 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit()
1973 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1990 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1993 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1994 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1997 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1999 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
2003 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
2005 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
2008 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
2012 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
2014 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
2016 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
2019 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
2028 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive()
2031 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
2032 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
2051 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2056 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
2057 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
2060 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
2062 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2068 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2072 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2074 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2078 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2082 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2086 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2088 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2092 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2097 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2100 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2103 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2109 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2111 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2121 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2123 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2126 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2132 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2134 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2148 huart->TxXferCount = 0x00U; in HAL_UART_Abort_IT()
2149 huart->RxXferCount = 0x00U; in HAL_UART_Abort_IT()
2152 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2155 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2156 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2157 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2162 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2165 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2186 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2189 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2192 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2194 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2197 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2201 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2204 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2207 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2213 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2216 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2221 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2224 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2231 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2234 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2239 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2242 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2263 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2266 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2267 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2270 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2272 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2276 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2278 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2281 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2285 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2288 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2291 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2297 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2300 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2301 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2306 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2309 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2316 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2319 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2320 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2325 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2328 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2341 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2343 uint32_t isrflags = READ_REG(huart->Instance->SR); in HAL_UART_IRQHandler()
2344 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2345 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2356 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2368 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2374 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2380 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2387 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2391 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2396 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2401 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2402 if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) in HAL_UART_IRQHandler()
2407 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2410 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2412 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2415 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2419 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2420 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2423 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2431 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2434 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2443 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2446 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2456 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2459 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2462 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2470 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2474 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UART_IRQHandler()
2477 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2483 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2485 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2488 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2491 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2494 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2495 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2499 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2502 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2503 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2505 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2508 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2513 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2517 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2520 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2530 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2531 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2535 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2538 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2541 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2542 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2544 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2548 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2552 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2555 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2565 UART_Transmit_IT(huart); in HAL_UART_IRQHandler()
2572 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2583 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2586 UNUSED(huart); in HAL_UART_TxCpltCallback()
2598 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2601 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2613 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2616 UNUSED(huart); in HAL_UART_RxCpltCallback()
2628 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2631 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2643 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2646 UNUSED(huart); in HAL_UART_ErrorCallback()
2657 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2660 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2672 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2675 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2687 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2690 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2704 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2707 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2744 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2747 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2750 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2752 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2755 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_SBK); in HAL_LIN_SendBreak()
2757 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2760 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2771 HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2774 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_EnterMuteMode()
2777 __HAL_LOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2779 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnterMuteMode()
2782 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_EnterMuteMode()
2784 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnterMuteMode()
2785 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_EnterMuteMode()
2788 __HAL_UNLOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2799 HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_ExitMuteMode() argument
2802 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_ExitMuteMode()
2805 __HAL_LOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2807 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_ExitMuteMode()
2810 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_ExitMuteMode()
2812 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_ExitMuteMode()
2813 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_ExitMuteMode()
2816 __HAL_UNLOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2827 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2832 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2834 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2837 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableTransmitter()
2846 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableTransmitter()
2848 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2851 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2862 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2867 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2869 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2872 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableReceiver()
2881 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableReceiver()
2883 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2886 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2919 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2922 temp1 = huart->gState; in HAL_UART_GetState()
2923 temp2 = huart->RxState; in HAL_UART_GetState()
2934 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2936 return huart->ErrorCode; in HAL_UART_GetError()
2957 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
2960huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
2961huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
2962huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
2963huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
2964huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
2965huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
2966huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
2967huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
2968huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
2981 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATransmitCplt() local
2985 huart->TxXferCount = 0x00U; in UART_DMATransmitCplt()
2989 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
2992 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3000 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3003 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3016 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxHalfCplt() local
3020 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3023 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3035 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAReceiveCplt() local
3040 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3043 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3044 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3048 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3051 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3054 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3056 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3062 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3066 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3070 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3073 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3081 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3084 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3097 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxHalfCplt() local
3101 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3105 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3109 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3112 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3120 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3123 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3137 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAError() local
3140 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMAError()
3141 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in UART_DMAError()
3143 huart->TxXferCount = 0x00U; in UART_DMAError()
3144 UART_EndTxTransfer(huart); in UART_DMAError()
3148 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAError()
3149 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in UART_DMAError()
3151 huart->RxXferCount = 0x00U; in UART_DMAError()
3152 UART_EndRxTransfer(huart); in UART_DMAError()
3155 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3158 huart->ErrorCallback(huart); in UART_DMAError()
3161 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3176 static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag… in UART_WaitOnFlagUntilTimeout() argument
3180 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3191 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3193 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3196 __HAL_UART_CLEAR_OREFLAG(huart); in UART_WaitOnFlagUntilTimeout()
3201 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3203 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3206 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3227 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3229 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3230 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3231 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3233 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3234 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3236 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3239 __HAL_UART_ENABLE_IT(huart, UART_IT_PE); in UART_Start_Receive_IT()
3243 __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); in UART_Start_Receive_IT()
3246 __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); in UART_Start_Receive_IT()
3262 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3266 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3267 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3269 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3270 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3273 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3276 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3279 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3282 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3286 HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); in UART_Start_Receive_DMA()
3289 __HAL_UART_CLEAR_OREFLAG(huart); in UART_Start_Receive_DMA()
3291 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3294 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3298 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3302 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3312 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3315 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3318 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3326 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3329 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3330 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3333 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3335 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3339 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3340 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3352 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAAbortOnError() local
3353 huart->RxXferCount = 0x00U; in UART_DMAAbortOnError()
3354 huart->TxXferCount = 0x00U; in UART_DMAAbortOnError()
3358 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3361 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3376 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxAbortCallback() local
3378 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3381 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3383 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3390 huart->TxXferCount = 0x00U; in UART_DMATxAbortCallback()
3391 huart->RxXferCount = 0x00U; in UART_DMATxAbortCallback()
3394 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3397 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3398 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3399 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3404 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3407 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3422 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxAbortCallback() local
3424 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3427 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3429 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3436 huart->TxXferCount = 0x00U; in UART_DMARxAbortCallback()
3437 huart->RxXferCount = 0x00U; in UART_DMARxAbortCallback()
3440 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3443 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3444 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3445 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3450 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3453 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3468 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxOnlyAbortCallback() local
3470 huart->TxXferCount = 0x00U; in UART_DMATxOnlyAbortCallback()
3473 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3478 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3481 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3496 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3498 huart->RxXferCount = 0x00U; in UART_DMARxOnlyAbortCallback()
3501 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3502 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3507 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3510 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3520 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) in UART_Transmit_IT() argument
3525 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_Transmit_IT()
3527 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Transmit_IT()
3529 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_Transmit_IT()
3530 huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in UART_Transmit_IT()
3531 huart->pTxBuffPtr += 2U; in UART_Transmit_IT()
3535 huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); in UART_Transmit_IT()
3538 if (--huart->TxXferCount == 0U) in UART_Transmit_IT()
3541 __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); in UART_Transmit_IT()
3544 __HAL_UART_ENABLE_IT(huart, UART_IT_TC); in UART_Transmit_IT()
3560 static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
3563 __HAL_UART_DISABLE_IT(huart, UART_IT_TC); in UART_EndTransmit_IT()
3566 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
3570 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
3573 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
3585 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) in UART_Receive_IT() argument
3591 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_Receive_IT()
3593 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Receive_IT()
3596 pdata16bits = (uint16_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3597 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in UART_Receive_IT()
3598 huart->pRxBuffPtr += 2U; in UART_Receive_IT()
3602 pdata8bits = (uint8_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3605 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in UART_Receive_IT()
3607 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in UART_Receive_IT()
3611 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in UART_Receive_IT()
3613 huart->pRxBuffPtr += 1U; in UART_Receive_IT()
3616 if (--huart->RxXferCount == 0U) in UART_Receive_IT()
3619 __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); in UART_Receive_IT()
3622 __HAL_UART_DISABLE_IT(huart, UART_IT_PE); in UART_Receive_IT()
3625 __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); in UART_Receive_IT()
3628 huart->RxState = HAL_UART_STATE_READY; in UART_Receive_IT()
3631 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_Receive_IT()
3635 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_Receive_IT()
3638 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_Receive_IT()
3641 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_Receive_IT()
3644 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in UART_Receive_IT()
3647 __HAL_UART_CLEAR_IDLEFLAG(huart); in UART_Receive_IT()
3652 huart->RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3655 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3663 huart->RxCpltCallback(huart); in UART_Receive_IT()
3666 HAL_UART_RxCpltCallback(huart); in UART_Receive_IT()
3686 static void UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3692 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3693 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3694 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3695 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3700 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3709 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3710 MODIFY_REG(huart->Instance->CR1, in UART_SetConfig()
3716 MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); in UART_SetConfig()
3719 if((huart->Instance == USART1) || (huart->Instance == USART6)) in UART_SetConfig()
3729 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3731 huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); in UART_SetConfig()
3735 huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); in UART_SetConfig()