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);
357 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
360 if (huart == NULL) in HAL_UART_Init()
366 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
371 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
372 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in HAL_UART_Init()
376 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
378 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_UART_Init()
379 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_UART_Init()
381 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
384 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
387 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
389 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
391 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
395 huart->MspInitCallback(huart); in HAL_UART_Init()
398 HAL_UART_MspInit(huart); in HAL_UART_Init()
402 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
405 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
408 UART_SetConfig(huart); in HAL_UART_Init()
413 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
414 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
417 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
420 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Init()
421 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Init()
422 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Init()
423 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_Init()
435 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
438 if (huart == NULL) in HAL_HalfDuplex_Init()
444 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
445 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_HalfDuplex_Init()
446 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_HalfDuplex_Init()
448 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
451 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
454 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
456 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
458 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
462 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
465 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
469 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
472 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
475 UART_SetConfig(huart); in HAL_HalfDuplex_Init()
480 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
481 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
484 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
487 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
490 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_HalfDuplex_Init()
491 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
492 huart->RxState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
493 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_HalfDuplex_Init()
509 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
512 if (huart == NULL) in HAL_LIN_Init()
518 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
522 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()
525 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
528 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
531 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
533 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
535 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
539 huart->MspInitCallback(huart); in HAL_LIN_Init()
542 HAL_UART_MspInit(huart); in HAL_LIN_Init()
546 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
549 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
552 UART_SetConfig(huart); in HAL_LIN_Init()
557 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); in HAL_LIN_Init()
558 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
561 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
564 CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); in HAL_LIN_Init()
565 SET_BIT(huart->Instance->CR2, BreakDetectLength); in HAL_LIN_Init()
568 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
571 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_LIN_Init()
572 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_Init()
573 huart->RxState = HAL_UART_STATE_READY; in HAL_LIN_Init()
574 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_LIN_Init()
591 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
594 if (huart == NULL) in HAL_MultiProcessor_Init()
600 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_Init()
605 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_MultiProcessor_Init()
606 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_MultiProcessor_Init()
608 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
611 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
614 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
616 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
618 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
622 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
625 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
629 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
632 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
635 UART_SetConfig(huart); in HAL_MultiProcessor_Init()
640 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
641 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
644 CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); in HAL_MultiProcessor_Init()
645 SET_BIT(huart->Instance->CR2, Address); in HAL_MultiProcessor_Init()
648 CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); in HAL_MultiProcessor_Init()
649 SET_BIT(huart->Instance->CR1, WakeUpMethod); in HAL_MultiProcessor_Init()
652 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
655 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_MultiProcessor_Init()
656 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
657 huart->RxState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
658 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_Init()
669 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
672 if (huart == NULL) in HAL_UART_DeInit()
678 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
680 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
683 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
686 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
688 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
691 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
694 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
697 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
698 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
699 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
700 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
701 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
704 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
715 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
718 UNUSED(huart); in HAL_UART_MspInit()
730 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
733 UNUSED(huart); in HAL_UART_MspDeInit()
761 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
769 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
774 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
779 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
783 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
787 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
795 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
799 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
803 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
807 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
811 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
815 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
820 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
827 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
832 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
836 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
841 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
851 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
881 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
885 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
890huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
894huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
898huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
902huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
906huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
910huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
914huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_UART_UnRegisterCallback()
918huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_UART_UnRegisterCallback()
922huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
926huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
931 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
938 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
943 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
947 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
952 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
962 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
978 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
984 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
990 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
992 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
994 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
998 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
1004 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
1015 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1020 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1022 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1024 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1028 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1034 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1135 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1142 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1149 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1150 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1155 huart->TxXferSize = Size; in HAL_UART_Transmit()
1156 huart->TxXferCount = Size; in HAL_UART_Transmit()
1159 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1170 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1172 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1174 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1180 huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1185 huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1188 huart->TxXferCount--; in HAL_UART_Transmit()
1191 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1193 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1199 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1221 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1228 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1235 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1236 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1237 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1242 huart->RxXferSize = Size; in HAL_UART_Receive()
1243 huart->RxXferCount = Size; in HAL_UART_Receive()
1246 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1258 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1260 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1262 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1268 *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); in HAL_UART_Receive()
1273 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UART_Receive()
1275 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UART_Receive()
1279 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UART_Receive()
1283 huart->RxXferCount--; in HAL_UART_Receive()
1287 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1308 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1311 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1318 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1319 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1320 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1322 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1323 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1326 __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); in HAL_UART_Transmit_IT()
1347 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1350 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1358 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1360 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1379 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1384 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1391 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1392 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1393 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1395 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1396 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1399 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1402 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1405 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1408 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1412 HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); in HAL_UART_Transmit_DMA()
1415 __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); in HAL_UART_Transmit_DMA()
1419 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1441 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1444 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1452 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1454 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1468 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1472 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1473 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAPause()
1476 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1479 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1480 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAPause()
1483 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1484 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1487 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1499 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1502 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1505 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1508 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1511 __HAL_UART_CLEAR_OREFLAG(huart); in HAL_UART_DMAResume()
1514 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1516 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1518 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1521 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1533 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1543 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1544 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAStop()
1546 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1549 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1551 HAL_DMA_Abort(huart->hdmatx); in HAL_UART_DMAStop()
1553 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1557 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1558 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAStop()
1560 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1563 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1565 HAL_DMA_Abort(huart->hdmarx); in HAL_UART_DMAStop()
1567 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1588 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size… in HAL_UARTEx_ReceiveToIdle() argument
1596 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle()
1603 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UARTEx_ReceiveToIdle()
1604 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UARTEx_ReceiveToIdle()
1605 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle()
1606 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle()
1611 huart->RxXferSize = Size; in HAL_UARTEx_ReceiveToIdle()
1612 huart->RxXferCount = Size; in HAL_UARTEx_ReceiveToIdle()
1615 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UARTEx_ReceiveToIdle()
1630 while (huart->RxXferCount > 0U) in HAL_UARTEx_ReceiveToIdle()
1633 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in HAL_UARTEx_ReceiveToIdle()
1636 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle()
1642 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UARTEx_ReceiveToIdle()
1643 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1650 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) in HAL_UARTEx_ReceiveToIdle()
1654 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in HAL_UARTEx_ReceiveToIdle()
1659 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UARTEx_ReceiveToIdle()
1661 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UARTEx_ReceiveToIdle()
1665 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UARTEx_ReceiveToIdle()
1672 huart->RxXferCount--; in HAL_UARTEx_ReceiveToIdle()
1680 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1688 *RxLen = huart->RxXferSize - huart->RxXferCount; in HAL_UARTEx_ReceiveToIdle()
1690 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1713 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S… in HAL_UARTEx_ReceiveToIdle_IT() argument
1718 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_IT()
1726 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_IT()
1727 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_IT()
1729 status = UART_Start_Receive_IT(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_IT()
1734 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_IT()
1736 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_IT()
1737 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_IT()
1773 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t … in HAL_UARTEx_ReceiveToIdle_DMA() argument
1778 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_DMA()
1786 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_DMA()
1787 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_DMA()
1789 status = UART_Start_Receive_DMA(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_DMA()
1794 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_DMA()
1796 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_DMA()
1797 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()
3718 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3719 MODIFY_REG(huart->Instance->CR1, in UART_SetConfig()
3725 MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); in UART_SetConfig()
3729 …if ((huart->Instance == USART1) || (huart->Instance == USART6) || (huart->Instance == UART9) || (h… in UART_SetConfig()
3734 if ((huart->Instance == USART1) || (huart->Instance == USART6)) in UART_SetConfig()
3739 if (huart->Instance == USART1) in UART_SetConfig()
3749 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3751 huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); in UART_SetConfig()
3755 huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); in UART_SetConfig()