Lines Matching refs:huart

198 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
200 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
212 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
213 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
214 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
215 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
216 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
217 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
218 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
219 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
220 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
307 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
310 if (huart == NULL) in HAL_UART_Init()
315 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
318 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
323 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
326 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
329 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
332 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
334 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
336 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
340 huart->MspInitCallback(huart); in HAL_UART_Init()
343 HAL_UART_MspInit(huart); in HAL_UART_Init()
347 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
349 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
353 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_UART_Init()
355 UART_AdvFeatureConfig(huart); in HAL_UART_Init()
359 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_UART_Init()
367 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
368 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
370 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
373 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
382 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
385 if (huart == NULL) in HAL_HalfDuplex_Init()
391 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
393 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
396 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
399 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
401 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
403 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
407 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
410 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
414 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
416 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
420 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
422 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
426 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
434 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
435 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
438 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
440 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
443 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
457 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
460 if (huart == NULL) in HAL_LIN_Init()
466 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
471 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
476 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
481 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
484 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
487 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
489 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
491 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
495 huart->MspInitCallback(huart); in HAL_LIN_Init()
498 HAL_UART_MspInit(huart); in HAL_LIN_Init()
502 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
504 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
508 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
510 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
514 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
522 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
523 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
526 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
529 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
531 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
534 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
556 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
559 if (huart == NULL) in HAL_MultiProcessor_Init()
567 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
570 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
573 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
575 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
577 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
581 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
584 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
588 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
590 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
594 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
596 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
600 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
608 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
609 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
614 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
618 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
620 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
623 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
632 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
635 if (huart == NULL) in HAL_UART_DeInit()
641 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
643 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
645 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
647 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
648 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
649 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
652 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
654 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
657 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
660 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
663 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
664 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
665 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
666 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_DeInit()
667 huart->RxEventType = HAL_UART_RXEVENT_TC; in HAL_UART_DeInit()
669 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
679 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
682 UNUSED(huart); in HAL_UART_MspInit()
694 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
697 UNUSED(huart); in HAL_UART_MspDeInit()
730 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
737 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
742 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
747 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
751 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
755 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
759 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
763 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
767 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
771 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
775 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
779 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
783 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
787 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
791 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
795 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
799 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
805 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
810 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
814 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
818 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
826 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
858 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
862 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
867huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
871huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
875huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
879huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
883huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
887huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
891 huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
896 huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak in HAL_UART_UnRegisterCallback()
901huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
905huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
909huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
913huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
917huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
921 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
927 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
932 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
936 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
940 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
948 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
963 HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback… in HAL_UART_RegisterRxEventCallback() argument
969 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
974 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_RegisterRxEventCallback()
976 huart->RxEventCallback = pCallback; in HAL_UART_RegisterRxEventCallback()
980 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterRxEventCallback()
994 HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) in HAL_UART_UnRegisterRxEventCallback() argument
998 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_UnRegisterRxEventCallback()
1000 huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ in HAL_UART_UnRegisterRxEventCallback()
1004 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterRxEventCallback()
1122 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size,… in HAL_UART_Transmit() argument
1129 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1139 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1147 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1148 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1153 huart->TxXferSize = Size; in HAL_UART_Transmit()
1154 huart->TxXferCount = Size; in HAL_UART_Transmit()
1157 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1168 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1170 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1173 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1179 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1184 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1187 huart->TxXferCount--; in HAL_UART_Transmit()
1190 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1192 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1198 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1228 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1236 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1246 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1254 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1255 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1256 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive()
1261 huart->RxXferSize = Size; in HAL_UART_Receive()
1262 huart->RxXferCount = Size; in HAL_UART_Receive()
1265 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1266 uhMask = huart->Mask; in HAL_UART_Receive()
1269 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1281 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1283 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1285 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1291 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1296 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1299 huart->RxXferCount--; in HAL_UART_Receive()
1303 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1328 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si… in HAL_UART_Transmit_IT() argument
1331 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1341 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1349 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1350 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1351 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1352 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1354 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1355 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1358 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1361 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1363 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1367 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1371 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1376 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1378 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1382 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1386 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1412 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1415 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1425 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1434 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_IT()
1437 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_IT()
1440 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_IT()
1443 return (UART_Start_Receive_IT(huart, pData, Size)); in HAL_UART_Receive_IT()
1467 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S… in HAL_UART_Transmit_DMA() argument
1470 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1480 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_DMA()
1488 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1489 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1490 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1492 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1493 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1495 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1498 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1501 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1504 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1507 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1510 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1513 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1516 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1522 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1526 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1553 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1556 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1566 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_DMA()
1575 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Receive_DMA()
1578 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in HAL_UART_Receive_DMA()
1581 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in HAL_UART_Receive_DMA()
1584 return (UART_Start_Receive_DMA(huart, pData, Size)); in HAL_UART_Receive_DMA()
1597 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1599 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1600 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1602 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1606 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1608 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1612 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1613 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1616 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1627 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1629 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1632 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1634 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1637 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1640 if (huart->Init.Parity != UART_PARITY_NONE) in HAL_UART_DMAResume()
1642 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1644 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1647 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1658 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1667 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1668 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1671 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1674 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1677 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1679 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1681 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1684 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1691 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1695 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1698 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1701 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1703 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1705 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1708 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1715 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1734 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1737 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | in HAL_UART_Abort()
1739 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1742 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort()
1744 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort()
1749 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1752 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1755 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1759 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1761 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1763 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1766 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1775 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1778 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1781 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1785 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1787 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1789 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1792 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1802 huart->TxXferCount = 0U; in HAL_UART_Abort()
1803 huart->RxXferCount = 0U; in HAL_UART_Abort()
1806 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1809 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1811 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1815 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1818 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1819 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1820 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort()
1822 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1839 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1842 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1843 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1847 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1850 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1853 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1857 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1859 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1861 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1864 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1874 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1877 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1879 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1883 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1900 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1903 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1904 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1907 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive()
1909 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive()
1914 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1917 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1920 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1924 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1926 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1928 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1931 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1941 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
1944 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
1947 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
1950 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
1951 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive()
1970 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
1975 …ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE… in HAL_UART_Abort_IT()
1977 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
1980 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_Abort_IT()
1982 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_Abort_IT()
1989 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
1993 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
1995 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
1999 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2003 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2007 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2009 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2013 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2018 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2021 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2024 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2030 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2032 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2042 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2045 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2048 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2054 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2056 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2071 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2072 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2075 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2076 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2079 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2082 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2085 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2087 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2091 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2094 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2095 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2096 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_Abort_IT()
2101 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2104 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2125 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2128 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2129 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2133 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2136 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2139 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2143 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2146 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2149 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2155 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2158 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2161 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2166 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2169 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2177 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2180 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2183 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2185 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2189 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2194 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2197 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2218 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2221 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2222 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2225 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_AbortReceive_IT()
2227 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); in HAL_UART_AbortReceive_IT()
2232 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2235 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2238 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2242 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2245 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2248 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2254 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2257 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2260 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2263 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2266 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2267 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2272 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2275 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2283 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2286 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2289 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2292 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2293 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_AbortReceive_IT()
2298 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2301 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2313 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2315 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2316 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2317 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2331 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2333 huart->RxISR(huart); in HAL_UART_IRQHandler()
2347 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2349 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2355 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2357 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2363 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2365 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2373 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2375 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2381 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2383 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2387 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2394 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2396 huart->RxISR(huart); in HAL_UART_IRQHandler()
2405 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2406 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2412 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2416 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2419 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2422 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2426 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()
2454 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2457 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2467 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2470 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2472 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2481 if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in HAL_UART_IRQHandler()
2485 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in HAL_UART_IRQHandler()
2489 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2495 uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); in HAL_UART_IRQHandler()
2497 && (nb_remaining_rx_data < huart->RxXferSize)) in HAL_UART_IRQHandler()
2500 huart->RxXferCount = nb_remaining_rx_data; in HAL_UART_IRQHandler()
2503 if (HAL_IS_BIT_CLR(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2506 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_IRQHandler()
2507 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_IRQHandler()
2511 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2514 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2515 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2517 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2520 (void)HAL_DMA_Abort(huart->hdmarx); in HAL_UART_IRQHandler()
2525 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2529 huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2532 HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); in HAL_UART_IRQHandler()
2539 if (nb_remaining_rx_data == huart->RxXferSize) in HAL_UART_IRQHandler()
2541 if (HAL_IS_BIT_SET(huart->hdmarx->Instance->CCR, DMA_CCR_CIRC)) in HAL_UART_IRQHandler()
2545 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2549 huart->RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2552 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in HAL_UART_IRQHandler()
2565 uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; in HAL_UART_IRQHandler()
2566 if ((huart->RxXferCount > 0U) in HAL_UART_IRQHandler()
2570 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in HAL_UART_IRQHandler()
2573 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_IRQHandler()
2576 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_IRQHandler()
2577 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in HAL_UART_IRQHandler()
2580 huart->RxISR = NULL; in HAL_UART_IRQHandler()
2582 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in HAL_UART_IRQHandler()
2586 huart->RxEventType = HAL_UART_RXEVENT_IDLE; in HAL_UART_IRQHandler()
2590 huart->RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2593 HAL_UARTEx_RxEventCallback(huart, nb_rx_data); in HAL_UART_IRQHandler()
2605 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2612 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2615 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2625 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2627 huart->TxISR(huart); in HAL_UART_IRQHandler()
2635 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2644 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2647 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2657 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2660 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2671 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2674 UNUSED(huart); in HAL_UART_TxCpltCallback()
2686 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2689 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2701 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2704 UNUSED(huart); in HAL_UART_RxCpltCallback()
2716 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2719 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2731 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2734 UNUSED(huart); in HAL_UART_ErrorCallback()
2746 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2749 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2761 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2764 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2776 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2779 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2793 __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) in HAL_UARTEx_RxEventCallback() argument
2796 UNUSED(huart); in HAL_UARTEx_RxEventCallback()
2841 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2844 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2853 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2855 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2858 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2860 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2863 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2865 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2868 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2884 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2886 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2889 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2891 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2894 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2896 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2899 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2915 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2917 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2919 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2922 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2924 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2926 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2935 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2937 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2939 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2942 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2944 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2946 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2955 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2957 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2965 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2967 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2968 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2971 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2974 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2976 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2978 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2988 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2990 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
2991 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
2994 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
2997 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
2999 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3001 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3012 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3015 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3017 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3019 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3022 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3024 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3026 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3057 HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3061 temp1 = huart->gState; in HAL_UART_GetState()
3062 temp2 = huart->RxState; in HAL_UART_GetState()
3073 uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3075 return huart->ErrorCode; in HAL_UART_GetError()
3095 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3098huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3099huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3100huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3101huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3102huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3103huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3104huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3105huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3106huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3107huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3108huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3109huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCallb… in UART_InitCallbacksToDefault()
3119 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3129 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3130 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3131 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3132 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3134 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3135 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3136 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3137 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3138 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3147 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3148 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3153 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3161 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3163 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3164 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3169 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3172 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3174 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3199 … usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3204 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3237 …usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3240 huart->Instance->BRR = (uint16_t)usartdiv; in UART_SetConfig()
3250 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3251 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3254 huart->RxISR = NULL; in UART_SetConfig()
3255 huart->TxISR = NULL; in UART_SetConfig()
3265 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3268 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3271 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3273 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3274 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3278 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3280 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3281 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3285 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3287 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3288 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3292 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3294 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3295 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3299 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3301 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3302 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3307 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3309 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3310 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3315 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3317 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3318 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3319 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3321 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3323 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3324 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3329 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3331 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3332 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3341 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3346 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3352 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3355 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3358 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE)); in UART_CheckIdleState()
3360 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3362 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3370 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3373 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3377 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_CheckIdleState()
3378 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_CheckIdleState()
3380 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3382 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3390 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3391 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3392 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_CheckIdleState()
3393 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_CheckIdleState()
3395 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3410 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3414 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3425 …if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag != UA… in UART_WaitOnFlagUntilTimeout()
3427 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) in UART_WaitOnFlagUntilTimeout()
3430 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in UART_WaitOnFlagUntilTimeout()
3435 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3437 huart->ErrorCode = HAL_UART_ERROR_ORE; in UART_WaitOnFlagUntilTimeout()
3440 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3444 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3447 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3452 UART_EndRxTransfer(huart); in UART_WaitOnFlagUntilTimeout()
3454 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3457 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3478 HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_IT() argument
3480 huart->pRxBuffPtr = pData; in UART_Start_Receive_IT()
3481 huart->RxXferSize = Size; in UART_Start_Receive_IT()
3482 huart->RxXferCount = Size; in UART_Start_Receive_IT()
3483 huart->RxISR = NULL; in UART_Start_Receive_IT()
3486 UART_MASK_COMPUTATION(huart); in UART_Start_Receive_IT()
3488 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_IT()
3489 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_IT()
3492 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_IT()
3495 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in UART_Start_Receive_IT()
3498 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3500 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in UART_Start_Receive_IT()
3504 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in UART_Start_Receive_IT()
3508 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3510 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_IT()
3512 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_Start_Receive_IT()
3517 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in UART_Start_Receive_IT()
3519 huart->RxISR = UART_RxISR_16BIT; in UART_Start_Receive_IT()
3523 huart->RxISR = UART_RxISR_8BIT; in UART_Start_Receive_IT()
3527 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_IT()
3529 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3533 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_Start_Receive_IT()
3551 HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in UART_Start_Receive_DMA() argument
3553 huart->pRxBuffPtr = pData; in UART_Start_Receive_DMA()
3554 huart->RxXferSize = Size; in UART_Start_Receive_DMA()
3556 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_Start_Receive_DMA()
3557 huart->RxState = HAL_UART_STATE_BUSY_RX; in UART_Start_Receive_DMA()
3559 if (huart->hdmarx != NULL) in UART_Start_Receive_DMA()
3562 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in UART_Start_Receive_DMA()
3565 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in UART_Start_Receive_DMA()
3568 huart->hdmarx->XferErrorCallback = UART_DMAError; in UART_Start_Receive_DMA()
3571 huart->hdmarx->XferAbortCallback = NULL; in UART_Start_Receive_DMA()
3574 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in UART_Start_Receive_DMA()
3577 huart->ErrorCode = HAL_UART_ERROR_DMA; in UART_Start_Receive_DMA()
3580 huart->RxState = HAL_UART_STATE_READY; in UART_Start_Receive_DMA()
3587 if (huart->Init.Parity != UART_PARITY_NONE) in UART_Start_Receive_DMA()
3589 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_Start_Receive_DMA()
3593 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_Start_Receive_DMA()
3597 ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_Start_Receive_DMA()
3608 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3611 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3612 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3615 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3625 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3628 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3629 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3632 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_EndRxTransfer()
3634 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_EndRxTransfer()
3638 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3639 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_EndRxTransfer()
3642 huart->RxISR = NULL; in UART_EndRxTransfer()
3654 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3659 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3663 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3666 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3673 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3676 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3688 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3692 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3695 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3706 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3711 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3714 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3715 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3719 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3722 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3725 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3727 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_DMAReceiveCplt()
3733 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_DMAReceiveCplt()
3737 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMAReceiveCplt()
3741 huart->RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3744 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_DMAReceiveCplt()
3752 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3755 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3767 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3771 huart->RxEventType = HAL_UART_RXEVENT_HT; in UART_DMARxHalfCplt()
3775 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_DMARxHalfCplt()
3779 huart->RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3782 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); in UART_DMARxHalfCplt()
3790 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3793 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3805 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3807 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3808 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3811 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3814 huart->TxXferCount = 0U; in UART_DMAError()
3815 UART_EndTxTransfer(huart); in UART_DMAError()
3819 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3822 huart->RxXferCount = 0U; in UART_DMAError()
3823 UART_EndRxTransfer(huart); in UART_DMAError()
3826 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3830 huart->ErrorCallback(huart); in UART_DMAError()
3833 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3845 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3846 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3847 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3851 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3854 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3868 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3870 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3873 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3875 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3882 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3883 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3886 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3889 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3892 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3894 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3898 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3899 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3900 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMATxAbortCallback()
3905 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3908 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3923 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3925 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3928 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3930 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3937 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3938 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3941 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3944 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3947 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3950 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3951 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3952 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxAbortCallback()
3957 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3960 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3975 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3977 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
3980 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
3982 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
3986 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3991 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3994 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
4008 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
4010 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
4013 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
4016 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
4019 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
4020 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_DMARxOnlyAbortCallback()
4025 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4028 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
4040 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4043 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4045 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4048 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4051 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4055 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4056 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4057 huart->TxXferCount--; in UART_TxISR_8BIT()
4069 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4074 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4076 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4079 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4082 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4086 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4087 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4088 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4089 huart->TxXferCount--; in UART_TxISR_16BIT()
4101 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4106 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4108 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4110 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4113 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4116 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4120 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4122 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4123 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4124 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4141 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4147 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4149 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4151 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4154 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4157 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4161 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4163 tmp = (const uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4164 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4165 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4166 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4182 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4185 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4188 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4191 huart->TxISR = NULL; in UART_EndTransmit_IT()
4195 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4198 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4207 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4209 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4213 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4215 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4216 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4217 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4218 huart->RxXferCount--; in UART_RxISR_8BIT()
4220 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4223 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4226 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4229 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4232 huart->RxISR = NULL; in UART_RxISR_8BIT()
4235 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT()
4238 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT()
4241 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT()
4246 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT()
4249 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT()
4252 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT()
4254 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT()
4257 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT()
4262 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4265 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT()
4273 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4276 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4284 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4295 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4298 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4302 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4304 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4305 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4307 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4308 huart->RxXferCount--; in UART_RxISR_16BIT()
4310 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4313 ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4316 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4319 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4322 huart->RxISR = NULL; in UART_RxISR_16BIT()
4325 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT()
4328 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT()
4331 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT()
4336 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT()
4339 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT()
4342 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT()
4344 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT()
4347 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT()
4352 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4355 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT()
4363 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4366 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4374 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4385 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4387 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4391 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4392 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_8BIT_FIFOEN()
4393 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_8BIT_FIFOEN()
4396 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4398 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_8BIT_FIFOEN()
4401 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4402 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4403 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4404 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4405 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_8BIT_FIFOEN()
4413 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_8BIT_FIFOEN()
4415 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_8BIT_FIFOEN()
4421 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_8BIT_FIFOEN()
4423 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_8BIT_FIFOEN()
4429 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_8BIT_FIFOEN()
4431 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_8BIT_FIFOEN()
4435 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_8BIT_FIFOEN()
4441 huart->ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4444 HAL_UART_ErrorCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4446 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_8BIT_FIFOEN()
4450 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4453 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4457 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4460 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4463 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4466 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_8BIT_FIFOEN()
4469 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_8BIT_FIFOEN()
4472 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_8BIT_FIFOEN()
4477 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_8BIT_FIFOEN()
4480 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_8BIT_FIFOEN()
4483 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_8BIT_FIFOEN()
4485 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_8BIT_FIFOEN()
4488 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_8BIT_FIFOEN()
4493 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4496 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_8BIT_FIFOEN()
4504 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4507 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4518 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4519 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4522 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4525 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4528 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4534 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4545 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4548 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4552 uint32_t isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4553 uint32_t cr1its = READ_REG(huart->Instance->CR1); in UART_RxISR_16BIT_FIFOEN()
4554 uint32_t cr3its = READ_REG(huart->Instance->CR3); in UART_RxISR_16BIT_FIFOEN()
4557 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4559 nb_rx_data = huart->NbRxDataToProcess; in UART_RxISR_16BIT_FIFOEN()
4562 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4563 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4565 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4566 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4567 isrflags = READ_REG(huart->Instance->ISR); in UART_RxISR_16BIT_FIFOEN()
4575 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in UART_RxISR_16BIT_FIFOEN()
4577 huart->ErrorCode |= HAL_UART_ERROR_PE; in UART_RxISR_16BIT_FIFOEN()
4583 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in UART_RxISR_16BIT_FIFOEN()
4585 huart->ErrorCode |= HAL_UART_ERROR_FE; in UART_RxISR_16BIT_FIFOEN()
4591 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in UART_RxISR_16BIT_FIFOEN()
4593 huart->ErrorCode |= HAL_UART_ERROR_NE; in UART_RxISR_16BIT_FIFOEN()
4597 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in UART_RxISR_16BIT_FIFOEN()
4603 huart->ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4606 HAL_UART_ErrorCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4608 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_RxISR_16BIT_FIFOEN()
4612 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4615 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4619 ATOMIC_CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4622 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4625 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4628 huart->RxEventType = HAL_UART_RXEVENT_TC; in UART_RxISR_16BIT_FIFOEN()
4631 if (READ_BIT(huart->Instance->CR2, USART_CR2_RTOEN) != 0U) in UART_RxISR_16BIT_FIFOEN()
4634 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RTOIE); in UART_RxISR_16BIT_FIFOEN()
4639 if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) in UART_RxISR_16BIT_FIFOEN()
4642 huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; in UART_RxISR_16BIT_FIFOEN()
4645 ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); in UART_RxISR_16BIT_FIFOEN()
4647 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE) == SET) in UART_RxISR_16BIT_FIFOEN()
4650 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF); in UART_RxISR_16BIT_FIFOEN()
4655 huart->RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4658 HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); in UART_RxISR_16BIT_FIFOEN()
4666 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4669 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4680 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4681 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4684 ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4687 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4690 ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4696 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()