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);
354 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
357 if (huart == NULL) in HAL_UART_Init()
363 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
366 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
367 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in HAL_UART_Init()
371 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
373 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_UART_Init()
375 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_UART_Init()
378 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
381 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
384 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
386 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
388 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
392 huart->MspInitCallback(huart); in HAL_UART_Init()
395 HAL_UART_MspInit(huart); in HAL_UART_Init()
399 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
402 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
405 UART_SetConfig(huart); in HAL_UART_Init()
410 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
411 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
414 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
417 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Init()
418 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Init()
419 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Init()
420 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_Init()
432 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
435 if (huart == NULL) in HAL_HalfDuplex_Init()
441 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
442 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_HalfDuplex_Init()
444 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_HalfDuplex_Init()
447 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
450 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
453 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
455 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
457 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
461 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
464 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
468 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
471 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
474 UART_SetConfig(huart); in HAL_HalfDuplex_Init()
479 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
480 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
483 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
486 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
489 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_HalfDuplex_Init()
490 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
491 huart->RxState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
492 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_HalfDuplex_Init()
508 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
511 if (huart == NULL) in HAL_LIN_Init()
517 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
521 assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); in HAL_LIN_Init()
523 assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); in HAL_LIN_Init()
526 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
529 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
532 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
534 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
536 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
540 huart->MspInitCallback(huart); in HAL_LIN_Init()
543 HAL_UART_MspInit(huart); in HAL_LIN_Init()
547 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
550 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
553 UART_SetConfig(huart); in HAL_LIN_Init()
558 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); in HAL_LIN_Init()
559 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
562 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
565 CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); in HAL_LIN_Init()
566 SET_BIT(huart->Instance->CR2, BreakDetectLength); in HAL_LIN_Init()
569 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
572 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_LIN_Init()
573 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_Init()
574 huart->RxState = HAL_UART_STATE_READY; in HAL_LIN_Init()
575 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_LIN_Init()
592 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
595 if (huart == NULL) in HAL_MultiProcessor_Init()
601 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_Init()
606 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_MultiProcessor_Init()
608 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_MultiProcessor_Init()
611 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
614 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
617 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
619 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
621 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
625 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
628 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
632 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
635 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
638 UART_SetConfig(huart); in HAL_MultiProcessor_Init()
643 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
644 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
647 CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); in HAL_MultiProcessor_Init()
648 SET_BIT(huart->Instance->CR2, Address); in HAL_MultiProcessor_Init()
651 CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); in HAL_MultiProcessor_Init()
652 SET_BIT(huart->Instance->CR1, WakeUpMethod); in HAL_MultiProcessor_Init()
655 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
658 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_MultiProcessor_Init()
659 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
660 huart->RxState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
661 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_Init()
672 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
675 if (huart == NULL) in HAL_UART_DeInit()
681 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
683 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
686 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
689 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
691 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
694 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
697 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
700 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
701 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
702 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
703 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
704 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
707 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
718 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
721 UNUSED(huart); in HAL_UART_MspInit()
733 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
736 UNUSED(huart); in HAL_UART_MspDeInit()
764 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
772 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
777 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
782 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
786 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
790 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
794 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
798 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
802 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
806 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
810 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
814 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
818 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
823 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
830 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
835 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
839 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
844 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
854 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
884 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
888 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
893huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
897huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
901huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
905huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
909huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
913huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
917huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_UART_UnRegisterCallback()
921huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_UART_UnRegisterCallback()
925huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
929huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
934 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
941 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
946 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
950 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
955 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
965 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
981 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
987 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
993 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
995 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
997 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
1001 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1007 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
1018 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1023 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1025 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1027 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1031 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1037 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1138 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1145 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1152 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1153 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1158 huart->TxXferSize = Size; in HAL_UART_Transmit()
1159 huart->TxXferCount = Size; in HAL_UART_Transmit()
1162 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1173 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1175 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1177 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1183 huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1188 huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1191 huart->TxXferCount--; in HAL_UART_Transmit()
1194 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1196 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1202 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1224 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1231 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1238 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1239 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1240 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1245 huart->RxXferSize = Size; in HAL_UART_Receive()
1246 huart->RxXferCount = Size; in HAL_UART_Receive()
1249 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1261 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1263 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1265 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1271 *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); in HAL_UART_Receive()
1276 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UART_Receive()
1278 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UART_Receive()
1282 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UART_Receive()
1286 huart->RxXferCount--; in HAL_UART_Receive()
1290 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1311 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1314 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1321 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1322 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1323 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1325 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1326 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1329 __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); in HAL_UART_Transmit_IT()
1350 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1353 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1361 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1363 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1382 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1387 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1394 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1395 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1396 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1398 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1399 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1402 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1405 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1408 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1411 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1415 HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); in HAL_UART_Transmit_DMA()
1418 __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); in HAL_UART_Transmit_DMA()
1422 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1444 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1447 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1455 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1457 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1471 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1475 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1476 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAPause()
1479 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1482 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1483 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAPause()
1486 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1487 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1490 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1502 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1505 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1508 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1511 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1514 __HAL_UART_CLEAR_OREFLAG(huart); in HAL_UART_DMAResume()
1517 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1519 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1521 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1524 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1536 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1546 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1547 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAStop()
1549 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1552 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1554 HAL_DMA_Abort(huart->hdmatx); in HAL_UART_DMAStop()
1556 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1560 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1561 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAStop()
1563 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1566 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1568 HAL_DMA_Abort(huart->hdmarx); in HAL_UART_DMAStop()
1570 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1591 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size… in HAL_UARTEx_ReceiveToIdle() argument
1599 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle()
1606 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UARTEx_ReceiveToIdle()
1607 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UARTEx_ReceiveToIdle()
1608 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle()
1609 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle()
1614 huart->RxXferSize = Size; in HAL_UARTEx_ReceiveToIdle()
1615 huart->RxXferCount = Size; in HAL_UARTEx_ReceiveToIdle()
1618 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UARTEx_ReceiveToIdle()
1633 while (huart->RxXferCount > 0U) in HAL_UARTEx_ReceiveToIdle()
1636 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in HAL_UARTEx_ReceiveToIdle()
1639 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle()
1645 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UARTEx_ReceiveToIdle()
1646 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1653 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) in HAL_UARTEx_ReceiveToIdle()
1657 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in HAL_UARTEx_ReceiveToIdle()
1662 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UARTEx_ReceiveToIdle()
1664 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UARTEx_ReceiveToIdle()
1668 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UARTEx_ReceiveToIdle()
1675 huart->RxXferCount--; in HAL_UARTEx_ReceiveToIdle()
1683 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1691 *RxLen = huart->RxXferSize - huart->RxXferCount; in HAL_UARTEx_ReceiveToIdle()
1693 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1716 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S… in HAL_UARTEx_ReceiveToIdle_IT() argument
1721 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_IT()
1729 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_IT()
1730 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_IT()
1732 status = UART_Start_Receive_IT(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_IT()
1737 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_IT()
1739 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_IT()
1740 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_IT()
1776 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t … in HAL_UARTEx_ReceiveToIdle_DMA() argument
1781 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_DMA()
1789 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_DMA()
1790 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_DMA()
1792 status = UART_Start_Receive_DMA(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_DMA()
1795 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_DMA()
1797 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_DMA()
1798 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_DMA()
1841 HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart) in HAL_UARTEx_GetRxEventType() argument
1844 return(huart->RxEventType); in HAL_UARTEx_GetRxEventType()
1859 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1862 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1863 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1866 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1868 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1872 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1874 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1877 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1881 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1883 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1885 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1888 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1897 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1899 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1902 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1906 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1908 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1910 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1913 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1922 huart->TxXferCount = 0x00U; in HAL_UART_Abort()
1923 huart->RxXferCount = 0x00U; in HAL_UART_Abort()
1926 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1929 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1930 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1931 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1948 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1951 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1954 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1956 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1959 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1963 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1965 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1967 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1970 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1979 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit()
1982 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1999 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
2002 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
2003 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
2006 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
2008 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
2012 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
2014 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
2017 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
2021 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
2023 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
2025 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
2028 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
2037 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive()
2040 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
2041 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
2060 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2065 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
2066 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
2069 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
2071 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2077 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2081 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2083 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2087 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2091 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2095 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2097 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2101 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2106 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2109 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2112 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2118 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2120 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2130 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2132 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2135 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2141 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2143 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2157 huart->TxXferCount = 0x00U; in HAL_UART_Abort_IT()
2158 huart->RxXferCount = 0x00U; in HAL_UART_Abort_IT()
2161 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2164 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2165 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2166 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2171 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2174 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2195 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2198 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2201 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2203 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2206 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2210 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2213 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2216 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2222 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2225 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2230 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2233 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2240 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2243 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2248 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2251 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2272 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2275 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2276 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2279 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2281 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2285 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2287 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2290 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2294 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2297 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2300 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2306 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2309 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2310 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2315 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2318 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2325 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2328 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2329 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2334 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2337 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2350 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2352 uint32_t isrflags = READ_REG(huart->Instance->SR); in HAL_UART_IRQHandler()
2353 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2354 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2365 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2377 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2383 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2389 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2396 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2400 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2405 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2410 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2411 if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) in HAL_UART_IRQHandler()
2416 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2419 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2421 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2424 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2428 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2429 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2432 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2440 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2443 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2452 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2455 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2465 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2468 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2471 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2479 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2483 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UART_IRQHandler()
2486 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2492 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2494 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2497 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2500 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2503 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2504 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2508 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2511 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2512 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2514 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2517 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2522 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2526 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2529 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2539 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2540 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2544 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2547 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2550 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2551 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2553 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2557 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2561 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2564 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2574 UART_Transmit_IT(huart); in HAL_UART_IRQHandler()
2581 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2592 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2595 UNUSED(huart); in HAL_UART_TxCpltCallback()
2607 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2610 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2622 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2625 UNUSED(huart); in HAL_UART_RxCpltCallback()
2637 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2640 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2652 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2655 UNUSED(huart); in HAL_UART_ErrorCallback()
2666 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2669 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2681 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2684 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2696 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2699 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2713 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2716 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2753 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2756 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2759 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2761 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2764 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_SBK); in HAL_LIN_SendBreak()
2766 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2769 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2780 HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2783 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_EnterMuteMode()
2786 __HAL_LOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2788 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnterMuteMode()
2791 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_EnterMuteMode()
2793 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnterMuteMode()
2794 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_EnterMuteMode()
2797 __HAL_UNLOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2808 HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_ExitMuteMode() argument
2811 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_ExitMuteMode()
2814 __HAL_LOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2816 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_ExitMuteMode()
2819 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_ExitMuteMode()
2821 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_ExitMuteMode()
2822 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_ExitMuteMode()
2825 __HAL_UNLOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2836 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2841 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2843 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2846 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableTransmitter()
2855 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableTransmitter()
2857 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2860 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2871 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2876 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2878 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2881 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableReceiver()
2890 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableReceiver()
2892 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2895 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2928 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2931 temp1 = huart->gState; in HAL_UART_GetState()
2932 temp2 = huart->RxState; in HAL_UART_GetState()
2943 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2945 return huart->ErrorCode; in HAL_UART_GetError()
2966 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
2969huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
2970huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
2971huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
2972huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
2973huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
2974huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
2975huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
2976huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
2977huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
2990 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATransmitCplt() local
2994 huart->TxXferCount = 0x00U; in UART_DMATransmitCplt()
2998 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3001 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3009 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3012 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3025 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxHalfCplt() local
3029 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3032 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3044 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAReceiveCplt() local
3049 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3052 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3053 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3057 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3060 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3063 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3065 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3071 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3075 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3079 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3082 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3090 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3093 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3106 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxHalfCplt() local
3110 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3114 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3118 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3121 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3129 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3132 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3146 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAError() local
3149 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMAError()
3150 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in UART_DMAError()
3152 huart->TxXferCount = 0x00U; in UART_DMAError()
3153 UART_EndTxTransfer(huart); in UART_DMAError()
3157 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAError()
3158 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in UART_DMAError()
3160 huart->RxXferCount = 0x00U; in UART_DMAError()
3161 UART_EndRxTransfer(huart); in UART_DMAError()
3164 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3167 huart->ErrorCallback(huart); in UART_DMAError()
3170 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3185 static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag… in UART_WaitOnFlagUntilTimeout() argument
3189 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3200 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3202 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3205 __HAL_UART_CLEAR_OREFLAG(huart); in UART_WaitOnFlagUntilTimeout()
3210 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3212 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3215 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3236 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3238 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3239 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3240 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3242 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3243 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3245 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3248 __HAL_UART_ENABLE_IT(huart, UART_IT_PE); in UART_Start_Receive_IT()
3252 __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); in UART_Start_Receive_IT()
3255 __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); in UART_Start_Receive_IT()
3271 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3275 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3276 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3278 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3279 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3282 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3285 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3288 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3291 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3295 HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); in UART_Start_Receive_DMA()
3298 __HAL_UART_CLEAR_OREFLAG(huart); in UART_Start_Receive_DMA()
3300 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3303 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3307 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3311 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3321 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3324 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3327 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3335 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3338 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3339 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3342 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3344 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3348 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3349 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3361 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAAbortOnError() local
3362 huart->RxXferCount = 0x00U; in UART_DMAAbortOnError()
3363 huart->TxXferCount = 0x00U; in UART_DMAAbortOnError()
3367 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3370 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3385 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxAbortCallback() local
3387 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3390 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3392 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3399 huart->TxXferCount = 0x00U; in UART_DMATxAbortCallback()
3400 huart->RxXferCount = 0x00U; in UART_DMATxAbortCallback()
3403 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3406 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3407 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3408 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3413 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3416 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3431 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxAbortCallback() local
3433 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3436 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3438 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3445 huart->TxXferCount = 0x00U; in UART_DMARxAbortCallback()
3446 huart->RxXferCount = 0x00U; in UART_DMARxAbortCallback()
3449 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3452 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3453 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3454 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3459 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3462 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3477 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxOnlyAbortCallback() local
3479 huart->TxXferCount = 0x00U; in UART_DMATxOnlyAbortCallback()
3482 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3487 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3490 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3505 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3507 huart->RxXferCount = 0x00U; in UART_DMARxOnlyAbortCallback()
3510 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3511 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3516 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3519 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3529 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) in UART_Transmit_IT() argument
3534 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_Transmit_IT()
3536 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Transmit_IT()
3538 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_Transmit_IT()
3539 huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in UART_Transmit_IT()
3540 huart->pTxBuffPtr += 2U; in UART_Transmit_IT()
3544 huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); in UART_Transmit_IT()
3547 if (--huart->TxXferCount == 0U) in UART_Transmit_IT()
3550 __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); in UART_Transmit_IT()
3553 __HAL_UART_ENABLE_IT(huart, UART_IT_TC); in UART_Transmit_IT()
3569 static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
3572 __HAL_UART_DISABLE_IT(huart, UART_IT_TC); in UART_EndTransmit_IT()
3575 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
3579 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
3582 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
3594 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) in UART_Receive_IT() argument
3600 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_Receive_IT()
3602 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Receive_IT()
3605 pdata16bits = (uint16_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3606 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in UART_Receive_IT()
3607 huart->pRxBuffPtr += 2U; in UART_Receive_IT()
3611 pdata8bits = (uint8_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3614 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in UART_Receive_IT()
3616 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in UART_Receive_IT()
3620 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in UART_Receive_IT()
3622 huart->pRxBuffPtr += 1U; in UART_Receive_IT()
3625 if (--huart->RxXferCount == 0U) in UART_Receive_IT()
3628 __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); in UART_Receive_IT()
3631 __HAL_UART_DISABLE_IT(huart, UART_IT_PE); in UART_Receive_IT()
3634 __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); in UART_Receive_IT()
3637 huart->RxState = HAL_UART_STATE_READY; in UART_Receive_IT()
3640 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_Receive_IT()
3644 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_Receive_IT()
3647 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_Receive_IT()
3650 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_Receive_IT()
3653 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in UART_Receive_IT()
3656 __HAL_UART_CLEAR_IDLEFLAG(huart); in UART_Receive_IT()
3661 huart->RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3664 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3672 huart->RxCpltCallback(huart); in UART_Receive_IT()
3675 HAL_UART_RxCpltCallback(huart); in UART_Receive_IT()
3695 static void UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3701 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3702 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3703 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3704 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3709 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3719 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3720 MODIFY_REG(huart->Instance->CR1, in UART_SetConfig()
3724 tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode; in UART_SetConfig()
3725 MODIFY_REG(huart->Instance->CR1, in UART_SetConfig()
3732 MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); in UART_SetConfig()
3735 if(huart->Instance == USART1) in UART_SetConfig()
3746 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3748 huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); in UART_SetConfig()
3752 huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); in UART_SetConfig()
3755 huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); in UART_SetConfig()