Lines Matching refs:huart

286 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart);
288 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
289 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
300 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart);
301 static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart);
302 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart);
303 static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag…
305 static void UART_SetConfig(UART_HandleTypeDef *huart);
353 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
356 if (huart == NULL) in HAL_UART_Init()
362 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
365 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
366 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in HAL_UART_Init()
370 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
372 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_UART_Init()
373 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_UART_Init()
375 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
378 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
381 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
383 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
385 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
389 huart->MspInitCallback(huart); in HAL_UART_Init()
392 HAL_UART_MspInit(huart); in HAL_UART_Init()
396 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
399 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
402 UART_SetConfig(huart); in HAL_UART_Init()
407 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
408 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
411 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
414 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Init()
415 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Init()
416 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Init()
417 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_Init()
429 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
432 if (huart == NULL) in HAL_HalfDuplex_Init()
438 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
439 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_HalfDuplex_Init()
440 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_HalfDuplex_Init()
442 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
445 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
448 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
450 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
452 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
456 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
459 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
463 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
466 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
469 UART_SetConfig(huart); in HAL_HalfDuplex_Init()
474 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
475 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
478 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
481 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
484 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_HalfDuplex_Init()
485 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
486 huart->RxState = HAL_UART_STATE_READY; in HAL_HalfDuplex_Init()
487 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_HalfDuplex_Init()
503 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
506 if (huart == NULL) in HAL_LIN_Init()
512 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
516 assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); in HAL_LIN_Init()
517 assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); in HAL_LIN_Init()
519 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
522 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
525 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
527 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
529 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
533 huart->MspInitCallback(huart); in HAL_LIN_Init()
536 HAL_UART_MspInit(huart); in HAL_LIN_Init()
540 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
543 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
546 UART_SetConfig(huart); in HAL_LIN_Init()
551 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); in HAL_LIN_Init()
552 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
555 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
558 CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); in HAL_LIN_Init()
559 SET_BIT(huart->Instance->CR2, BreakDetectLength); in HAL_LIN_Init()
562 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
565 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_LIN_Init()
566 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_Init()
567 huart->RxState = HAL_UART_STATE_READY; in HAL_LIN_Init()
568 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_LIN_Init()
585 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
588 if (huart == NULL) in HAL_MultiProcessor_Init()
594 assert_param(IS_UART_MULTIPROCESSOR_INSTANCE(huart->Instance)); in HAL_MultiProcessor_Init()
599 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in HAL_MultiProcessor_Init()
600 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in HAL_MultiProcessor_Init()
602 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
605 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
608 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
610 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
612 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
616 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
619 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
623 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
626 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
629 UART_SetConfig(huart); in HAL_MultiProcessor_Init()
634 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
635 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
638 CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); in HAL_MultiProcessor_Init()
639 SET_BIT(huart->Instance->CR2, Address); in HAL_MultiProcessor_Init()
642 CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); in HAL_MultiProcessor_Init()
643 SET_BIT(huart->Instance->CR1, WakeUpMethod); in HAL_MultiProcessor_Init()
646 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
649 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_MultiProcessor_Init()
650 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
651 huart->RxState = HAL_UART_STATE_READY; in HAL_MultiProcessor_Init()
652 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_Init()
663 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
666 if (huart == NULL) in HAL_UART_DeInit()
672 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
674 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
677 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
680 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
682 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
685 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
688 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
691 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
692 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
693 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
694 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
695 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
698 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
709 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
712 UNUSED(huart); in HAL_UART_MspInit()
724 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
727 UNUSED(huart); in HAL_UART_MspDeInit()
755 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
763 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
768 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
773 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
777 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
781 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
785 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
789 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
793 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
797 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
801 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
805 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
809 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
814 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
821 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
826 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
830 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
835 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
845 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
875 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
879 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
884huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
888huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
892huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
896huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
900huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
904huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
908huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_UART_UnRegisterCallback()
912huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_UART_UnRegisterCallback()
916huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
920huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
925 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
932 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
937 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
941 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
946 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
956 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
972 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
978 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
984 __HAL_LOCK(huart); in HAL_UART_RegisterRxEventCallback()
986 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
988 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
992 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
998 __HAL_UNLOCK(huart); in HAL_UART_RegisterRxEventCallback()
1009 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
1014 __HAL_LOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1016 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1018 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1022 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1028 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterRxEventCallback()
1129 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1136 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1143 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1144 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1149 huart->TxXferSize = Size; in HAL_UART_Transmit()
1150 huart->TxXferCount = Size; in HAL_UART_Transmit()
1153 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1164 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1166 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1172 huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1177 huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1180 huart->TxXferCount--; in HAL_UART_Transmit()
1183 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1189 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1211 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1218 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1225 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1226 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1227 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1232 huart->RxXferSize = Size; in HAL_UART_Receive()
1233 huart->RxXferCount = Size; in HAL_UART_Receive()
1236 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1248 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1250 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1256 *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); in HAL_UART_Receive()
1261 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UART_Receive()
1263 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UART_Receive()
1267 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UART_Receive()
1271 huart->RxXferCount--; in HAL_UART_Receive()
1275 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1296 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1299 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1306 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1307 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1308 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1310 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1311 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1314 __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); in HAL_UART_Transmit_IT()
1335 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1338 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1346 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1348 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1367 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1372 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1379 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1380 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1381 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1383 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1384 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1387 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1390 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1393 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1396 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1400 HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); in HAL_UART_Transmit_DMA()
1403 __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); in HAL_UART_Transmit_DMA()
1407 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1429 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1432 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1440 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1442 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1456 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1460 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1461 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAPause()
1464 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1467 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1468 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAPause()
1471 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1472 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1475 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1487 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1490 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1493 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1496 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1499 __HAL_UART_CLEAR_OREFLAG(huart); in HAL_UART_DMAResume()
1502 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1504 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1506 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1509 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1521 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1531 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1532 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in HAL_UART_DMAStop()
1534 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1537 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1539 HAL_DMA_Abort(huart->hdmatx); in HAL_UART_DMAStop()
1541 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1545 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1546 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in HAL_UART_DMAStop()
1548 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1551 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1553 HAL_DMA_Abort(huart->hdmarx); in HAL_UART_DMAStop()
1555 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1576 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size… in HAL_UARTEx_ReceiveToIdle() argument
1584 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle()
1591 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UARTEx_ReceiveToIdle()
1592 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UARTEx_ReceiveToIdle()
1593 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle()
1594 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle()
1599 huart->RxXferSize = Size; in HAL_UARTEx_ReceiveToIdle()
1600 huart->RxXferCount = Size; in HAL_UARTEx_ReceiveToIdle()
1603 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UARTEx_ReceiveToIdle()
1618 while (huart->RxXferCount > 0U) in HAL_UARTEx_ReceiveToIdle()
1621 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in HAL_UARTEx_ReceiveToIdle()
1624 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle()
1630 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UARTEx_ReceiveToIdle()
1631 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1638 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) in HAL_UARTEx_ReceiveToIdle()
1642 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in HAL_UARTEx_ReceiveToIdle()
1647 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in HAL_UARTEx_ReceiveToIdle()
1649 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in HAL_UARTEx_ReceiveToIdle()
1653 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in HAL_UARTEx_ReceiveToIdle()
1660 huart->RxXferCount--; in HAL_UARTEx_ReceiveToIdle()
1668 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1676 *RxLen = huart->RxXferSize - huart->RxXferCount; in HAL_UARTEx_ReceiveToIdle()
1678 huart->RxState = HAL_UART_STATE_READY; in HAL_UARTEx_ReceiveToIdle()
1701 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S… in HAL_UARTEx_ReceiveToIdle_IT() argument
1706 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_IT()
1714 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_IT()
1715 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_IT()
1717 status = UART_Start_Receive_IT(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_IT()
1722 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_IT()
1724 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_IT()
1725 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_IT()
1761 HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t … in HAL_UARTEx_ReceiveToIdle_DMA() argument
1766 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UARTEx_ReceiveToIdle_DMA()
1774 huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; in HAL_UARTEx_ReceiveToIdle_DMA()
1775 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UARTEx_ReceiveToIdle_DMA()
1777 status = UART_Start_Receive_DMA(huart, pData, Size); in HAL_UARTEx_ReceiveToIdle_DMA()
1782 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UARTEx_ReceiveToIdle_DMA()
1784 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UARTEx_ReceiveToIdle_DMA()
1785 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UARTEx_ReceiveToIdle_DMA()
1829 HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart) in HAL_UARTEx_GetRxEventType() argument
1832 return(huart->RxEventType); in HAL_UARTEx_GetRxEventType()
1847 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1850 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort()
1851 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort()
1854 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1856 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1860 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1862 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1865 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1869 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1871 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1873 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1876 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1885 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1887 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1890 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1894 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1896 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1898 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1901 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1910 huart->TxXferCount = 0x00U; in HAL_UART_Abort()
1911 huart->RxXferCount = 0x00U; in HAL_UART_Abort()
1914 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1917 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1918 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1919 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1936 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1939 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit()
1942 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1944 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1947 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1951 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1953 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1955 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1958 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1967 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit()
1970 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1987 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1990 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive()
1991 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive()
1994 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1996 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
2000 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
2002 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
2005 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
2009 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
2011 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
2013 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
2016 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
2025 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive()
2028 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
2029 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
2048 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2053 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USAR… in HAL_UART_Abort_IT()
2054 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Abort_IT()
2057 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
2059 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
2065 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2069 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2071 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2075 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2079 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2083 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2085 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2089 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2094 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2097 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2100 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2106 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2108 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2118 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2120 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2123 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2129 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2131 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2145 huart->TxXferCount = 0x00U; in HAL_UART_Abort_IT()
2146 huart->RxXferCount = 0x00U; in HAL_UART_Abort_IT()
2149 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2152 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2153 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2154 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2159 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2162 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2183 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2186 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in HAL_UART_AbortTransmit_IT()
2189 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2191 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2194 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2198 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2201 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2204 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2210 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2213 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2218 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2221 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2228 huart->TxXferCount = 0x00U; in HAL_UART_AbortTransmit_IT()
2231 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2236 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2239 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2260 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2263 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_AbortReceive_IT()
2264 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_AbortReceive_IT()
2267 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2269 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2273 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2275 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2278 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2282 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2285 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2288 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2294 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2297 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2298 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2303 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2306 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2313 huart->RxXferCount = 0x00U; in HAL_UART_AbortReceive_IT()
2316 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2317 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2322 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2325 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2338 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2340 uint32_t isrflags = READ_REG(huart->Instance->SR); in HAL_UART_IRQHandler()
2341 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2342 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2353 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2365 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2371 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2377 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2384 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2388 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2393 UART_Receive_IT(huart); in HAL_UART_IRQHandler()
2398 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2399 if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) in HAL_UART_IRQHandler()
2404 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2407 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2409 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2412 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2416 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2417 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2420 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2428 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2431 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2440 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2443 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2453 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2456 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2459 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2467 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2471 __HAL_UART_CLEAR_IDLEFLAG(huart); in HAL_UART_IRQHandler()
2474 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2480 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2482 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2485 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2488 if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) in HAL_UART_IRQHandler()
2491 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2492 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2496 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2499 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2500 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2502 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2505 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2510 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2514 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2517 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2527 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2528 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2532 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2535 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2538 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2539 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2541 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2545 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2549 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2552 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2562 UART_Transmit_IT(huart); in HAL_UART_IRQHandler()
2569 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2580 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2583 UNUSED(huart); in HAL_UART_TxCpltCallback()
2595 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2598 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2610 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2613 UNUSED(huart); in HAL_UART_RxCpltCallback()
2625 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2628 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2640 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2643 UNUSED(huart); in HAL_UART_ErrorCallback()
2654 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2657 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2669 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2672 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2684 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2687 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2701 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2704 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2741 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
2744 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
2747 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
2749 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
2752 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_SBK); in HAL_LIN_SendBreak()
2754 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
2757 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
2768 HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2771 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_EnterMuteMode()
2774 __HAL_LOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2776 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnterMuteMode()
2779 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_EnterMuteMode()
2781 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnterMuteMode()
2782 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_EnterMuteMode()
2785 __HAL_UNLOCK(huart); in HAL_MultiProcessor_EnterMuteMode()
2796 HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_ExitMuteMode() argument
2799 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_MultiProcessor_ExitMuteMode()
2802 __HAL_LOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2804 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_ExitMuteMode()
2807 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); in HAL_MultiProcessor_ExitMuteMode()
2809 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_ExitMuteMode()
2810 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_MultiProcessor_ExitMuteMode()
2813 __HAL_UNLOCK(huart); in HAL_MultiProcessor_ExitMuteMode()
2824 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2829 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2831 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2834 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableTransmitter()
2843 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableTransmitter()
2845 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2848 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2859 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2864 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2866 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2869 tmpreg = huart->Instance->CR1; in HAL_HalfDuplex_EnableReceiver()
2878 WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); in HAL_HalfDuplex_EnableReceiver()
2880 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
2883 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2916 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
2919 temp1 = huart->gState; in HAL_UART_GetState()
2920 temp2 = huart->RxState; in HAL_UART_GetState()
2931 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
2933 return huart->ErrorCode; in HAL_UART_GetError()
2954 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
2957huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
2958huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
2959huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
2960huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
2961huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
2962huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
2963huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
2964huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
2965huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
2978 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATransmitCplt() local
2982 huart->TxXferCount = 0x00U; in UART_DMATransmitCplt()
2986 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
2989 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
2997 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3000 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3013 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxHalfCplt() local
3017 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3020 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3032 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAReceiveCplt() local
3037 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3040 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3041 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3045 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3048 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3051 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3053 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3059 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3063 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3067 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3070 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3078 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3081 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3094 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxHalfCplt() local
3098 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3102 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3106 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3109 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3117 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3120 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3134 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAError() local
3137 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMAError()
3138 if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) in UART_DMAError()
3140 huart->TxXferCount = 0x00U; in UART_DMAError()
3141 UART_EndTxTransfer(huart); in UART_DMAError()
3145 dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAError()
3146 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) in UART_DMAError()
3148 huart->RxXferCount = 0x00U; in UART_DMAError()
3149 UART_EndRxTransfer(huart); in UART_DMAError()
3152 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3155 huart->ErrorCallback(huart); in UART_DMAError()
3158 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3173 static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag… in UART_WaitOnFlagUntilTimeout() argument
3177 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3185 … ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); in UART_WaitOnFlagUntilTimeout()
3186 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_WaitOnFlagUntilTimeout()
3188 huart->gState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3189 huart->RxState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3192 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3212 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3214 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3215 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3216 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3218 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3219 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3221 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3224 __HAL_UART_ENABLE_IT(huart, UART_IT_PE); in UART_Start_Receive_IT()
3228 __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); in UART_Start_Receive_IT()
3231 __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); in UART_Start_Receive_IT()
3247 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3251 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3252 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3254 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3255 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3258 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3261 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3264 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3267 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3271 HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); in UART_Start_Receive_DMA()
3274 __HAL_UART_CLEAR_OREFLAG(huart); in UART_Start_Receive_DMA()
3276 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3279 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3283 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3287 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3297 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3300 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3303 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3311 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3314 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3315 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_EndRxTransfer()
3318 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3320 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3324 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3325 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3337 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMAAbortOnError() local
3338 huart->RxXferCount = 0x00U; in UART_DMAAbortOnError()
3339 huart->TxXferCount = 0x00U; in UART_DMAAbortOnError()
3343 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3346 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3361 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxAbortCallback() local
3363 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3366 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3368 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3375 huart->TxXferCount = 0x00U; in UART_DMATxAbortCallback()
3376 huart->RxXferCount = 0x00U; in UART_DMATxAbortCallback()
3379 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3382 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3383 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3384 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3389 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3392 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3407 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxAbortCallback() local
3409 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3412 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3414 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3421 huart->TxXferCount = 0x00U; in UART_DMARxAbortCallback()
3422 huart->RxXferCount = 0x00U; in UART_DMARxAbortCallback()
3425 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3428 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3429 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3430 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3435 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3438 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3453 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMATxOnlyAbortCallback() local
3455 huart->TxXferCount = 0x00U; in UART_DMATxOnlyAbortCallback()
3458 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3463 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3466 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3481 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3483 huart->RxXferCount = 0x00U; in UART_DMARxOnlyAbortCallback()
3486 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3487 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
3492 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3495 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3505 static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) in UART_Transmit_IT() argument
3510 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_Transmit_IT()
3512 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Transmit_IT()
3514 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_Transmit_IT()
3515 huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in UART_Transmit_IT()
3516 huart->pTxBuffPtr += 2U; in UART_Transmit_IT()
3520 huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); in UART_Transmit_IT()
3523 if (--huart->TxXferCount == 0U) in UART_Transmit_IT()
3526 __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); in UART_Transmit_IT()
3529 __HAL_UART_ENABLE_IT(huart, UART_IT_TC); in UART_Transmit_IT()
3545 static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
3548 __HAL_UART_DISABLE_IT(huart, UART_IT_TC); in UART_EndTransmit_IT()
3551 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
3555 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
3558 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
3570 static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) in UART_Receive_IT() argument
3576 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_Receive_IT()
3578 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Receive_IT()
3581 pdata16bits = (uint16_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3582 *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); in UART_Receive_IT()
3583 huart->pRxBuffPtr += 2U; in UART_Receive_IT()
3587 pdata8bits = (uint8_t *) huart->pRxBuffPtr; in UART_Receive_IT()
3590 …if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLENGTH_… in UART_Receive_IT()
3592 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); in UART_Receive_IT()
3596 *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); in UART_Receive_IT()
3598 huart->pRxBuffPtr += 1U; in UART_Receive_IT()
3601 if (--huart->RxXferCount == 0U) in UART_Receive_IT()
3604 __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); in UART_Receive_IT()
3607 __HAL_UART_DISABLE_IT(huart, UART_IT_PE); in UART_Receive_IT()
3610 __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); in UART_Receive_IT()
3613 huart->RxState = HAL_UART_STATE_READY; in UART_Receive_IT()
3616 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_Receive_IT()
3620 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_Receive_IT()
3623 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_Receive_IT()
3626 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_Receive_IT()
3629 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) in UART_Receive_IT()
3632 __HAL_UART_CLEAR_IDLEFLAG(huart); in UART_Receive_IT()
3637 huart->RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3640 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_Receive_IT()
3648 huart->RxCpltCallback(huart); in UART_Receive_IT()
3651 HAL_UART_RxCpltCallback(huart); in UART_Receive_IT()
3671 static void UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3677 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3678 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3679 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3680 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3685 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3694 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3695 MODIFY_REG(huart->Instance->CR1, in UART_SetConfig()
3701 MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); in UART_SetConfig()
3704 if((huart->Instance == USART1)) in UART_SetConfig()
3714 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3716 huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); in UART_SetConfig()
3720 huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); in UART_SetConfig()