Lines Matching refs:huart

196 static void UART_EndTxTransfer(UART_HandleTypeDef *huart);
197 static void UART_EndRxTransfer(UART_HandleTypeDef *huart);
218 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart);
219 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart);
220 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
221 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
222 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart);
223 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart);
224 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart);
225 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart);
226 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart);
303 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) in HAL_UART_Init() argument
306 if (huart == NULL) in HAL_UART_Init()
311 if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) in HAL_UART_Init()
314 assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); in HAL_UART_Init()
319 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_Init()
322 if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_Init()
325 huart->Lock = HAL_UNLOCKED; in HAL_UART_Init()
328 UART_InitCallbacksToDefault(huart); in HAL_UART_Init()
330 if (huart->MspInitCallback == NULL) in HAL_UART_Init()
332 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_Init()
336 huart->MspInitCallback(huart); in HAL_UART_Init()
339 HAL_UART_MspInit(huart); in HAL_UART_Init()
343 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_Init()
345 __HAL_UART_DISABLE(huart); in HAL_UART_Init()
348 if (UART_SetConfig(huart) == HAL_ERROR) 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()
361 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_UART_Init()
362 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_UART_Init()
364 __HAL_UART_ENABLE(huart); in HAL_UART_Init()
367 return (UART_CheckIdleState(huart)); in HAL_UART_Init()
376 HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) in HAL_HalfDuplex_Init() argument
379 if (huart == NULL) in HAL_HalfDuplex_Init()
385 assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); in HAL_HalfDuplex_Init()
387 if (huart->gState == HAL_UART_STATE_RESET) in HAL_HalfDuplex_Init()
390 huart->Lock = HAL_UNLOCKED; in HAL_HalfDuplex_Init()
393 UART_InitCallbacksToDefault(huart); in HAL_HalfDuplex_Init()
395 if (huart->MspInitCallback == NULL) in HAL_HalfDuplex_Init()
397 huart->MspInitCallback = HAL_UART_MspInit; in HAL_HalfDuplex_Init()
401 huart->MspInitCallback(huart); in HAL_HalfDuplex_Init()
404 HAL_UART_MspInit(huart); in HAL_HalfDuplex_Init()
408 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_Init()
410 __HAL_UART_DISABLE(huart); in HAL_HalfDuplex_Init()
413 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_HalfDuplex_Init()
418 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_HalfDuplex_Init()
420 UART_AdvFeatureConfig(huart); in HAL_HalfDuplex_Init()
426 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_HalfDuplex_Init()
427 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); in HAL_HalfDuplex_Init()
430 SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); in HAL_HalfDuplex_Init()
432 __HAL_UART_ENABLE(huart); in HAL_HalfDuplex_Init()
435 return (UART_CheckIdleState(huart)); in HAL_HalfDuplex_Init()
449 HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) in HAL_LIN_Init() argument
452 if (huart == NULL) in HAL_LIN_Init()
458 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_Init()
463 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in HAL_LIN_Init()
468 if (huart->Init.WordLength != UART_WORDLENGTH_8B) in HAL_LIN_Init()
473 if (huart->gState == HAL_UART_STATE_RESET) in HAL_LIN_Init()
476 huart->Lock = HAL_UNLOCKED; in HAL_LIN_Init()
479 UART_InitCallbacksToDefault(huart); in HAL_LIN_Init()
481 if (huart->MspInitCallback == NULL) in HAL_LIN_Init()
483 huart->MspInitCallback = HAL_UART_MspInit; in HAL_LIN_Init()
487 huart->MspInitCallback(huart); in HAL_LIN_Init()
490 HAL_UART_MspInit(huart); in HAL_LIN_Init()
494 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_Init()
496 __HAL_UART_DISABLE(huart); in HAL_LIN_Init()
499 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_LIN_Init()
504 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_LIN_Init()
506 UART_AdvFeatureConfig(huart); in HAL_LIN_Init()
512 CLEAR_BIT(huart->Instance->CR2, USART_CR2_CLKEN); in HAL_LIN_Init()
513 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); in HAL_LIN_Init()
516 SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); in HAL_LIN_Init()
519 MODIFY_REG(huart->Instance->CR2, USART_CR2_LBDL, BreakDetectLength); in HAL_LIN_Init()
521 __HAL_UART_ENABLE(huart); in HAL_LIN_Init()
524 return (UART_CheckIdleState(huart)); in HAL_LIN_Init()
546 HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake… in HAL_MultiProcessor_Init() argument
549 if (huart == NULL) in HAL_MultiProcessor_Init()
557 if (huart->gState == HAL_UART_STATE_RESET) in HAL_MultiProcessor_Init()
560 huart->Lock = HAL_UNLOCKED; in HAL_MultiProcessor_Init()
563 UART_InitCallbacksToDefault(huart); in HAL_MultiProcessor_Init()
565 if (huart->MspInitCallback == NULL) in HAL_MultiProcessor_Init()
567 huart->MspInitCallback = HAL_UART_MspInit; in HAL_MultiProcessor_Init()
571 huart->MspInitCallback(huart); in HAL_MultiProcessor_Init()
574 HAL_UART_MspInit(huart); in HAL_MultiProcessor_Init()
578 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_Init()
580 __HAL_UART_DISABLE(huart); in HAL_MultiProcessor_Init()
583 if (UART_SetConfig(huart) == HAL_ERROR) in HAL_MultiProcessor_Init()
588 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) in HAL_MultiProcessor_Init()
590 UART_AdvFeatureConfig(huart); in HAL_MultiProcessor_Init()
596 CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); in HAL_MultiProcessor_Init()
597 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_MultiProcessor_Init()
602 … MODIFY_REG(huart->Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS)); in HAL_MultiProcessor_Init()
606 MODIFY_REG(huart->Instance->CR1, USART_CR1_WAKE, WakeUpMethod); in HAL_MultiProcessor_Init()
608 __HAL_UART_ENABLE(huart); in HAL_MultiProcessor_Init()
611 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_Init()
620 HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) in HAL_UART_DeInit() argument
623 if (huart == NULL) in HAL_UART_DeInit()
629 assert_param(IS_UART_INSTANCE(huart->Instance)); in HAL_UART_DeInit()
631 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DeInit()
633 __HAL_UART_DISABLE(huart); in HAL_UART_DeInit()
635 huart->Instance->CR1 = 0x0U; in HAL_UART_DeInit()
636 huart->Instance->CR2 = 0x0U; in HAL_UART_DeInit()
637 huart->Instance->CR3 = 0x0U; in HAL_UART_DeInit()
640 if (huart->MspDeInitCallback == NULL) in HAL_UART_DeInit()
642 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_DeInit()
645 huart->MspDeInitCallback(huart); in HAL_UART_DeInit()
648 HAL_UART_MspDeInit(huart); in HAL_UART_DeInit()
651 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_DeInit()
652 huart->gState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
653 huart->RxState = HAL_UART_STATE_RESET; in HAL_UART_DeInit()
655 __HAL_UNLOCK(huart); in HAL_UART_DeInit()
665 __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) in HAL_UART_MspInit() argument
668 UNUSED(huart); in HAL_UART_MspInit()
680 __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) in HAL_UART_MspDeInit() argument
683 UNUSED(huart); in HAL_UART_MspDeInit()
713 HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C… in HAL_UART_RegisterCallback() argument
720 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
725 __HAL_LOCK(huart); in HAL_UART_RegisterCallback()
727 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_RegisterCallback()
732 huart->TxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
736 huart->TxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
740 huart->RxHalfCpltCallback = pCallback; in HAL_UART_RegisterCallback()
744 huart->RxCpltCallback = pCallback; in HAL_UART_RegisterCallback()
748 huart->ErrorCallback = pCallback; in HAL_UART_RegisterCallback()
752 huart->AbortCpltCallback = pCallback; in HAL_UART_RegisterCallback()
756 huart->AbortTransmitCpltCallback = pCallback; in HAL_UART_RegisterCallback()
760 huart->AbortReceiveCpltCallback = pCallback; in HAL_UART_RegisterCallback()
764 huart->WakeupCallback = pCallback; in HAL_UART_RegisterCallback()
768 huart->RxFifoFullCallback = pCallback; in HAL_UART_RegisterCallback()
772 huart->TxFifoEmptyCallback = pCallback; in HAL_UART_RegisterCallback()
776 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
780 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
784 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
790 else if (huart->gState == HAL_UART_STATE_RESET) in HAL_UART_RegisterCallback()
795 huart->MspInitCallback = pCallback; in HAL_UART_RegisterCallback()
799 huart->MspDeInitCallback = pCallback; in HAL_UART_RegisterCallback()
803 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
811 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_RegisterCallback()
816 __HAL_UNLOCK(huart); in HAL_UART_RegisterCallback()
842 HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef… in HAL_UART_UnRegisterCallback() argument
846 __HAL_LOCK(huart); in HAL_UART_UnRegisterCallback()
848 if (HAL_UART_STATE_READY == huart->gState) in HAL_UART_UnRegisterCallback()
853huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC… in HAL_UART_UnRegisterCallback()
857huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in HAL_UART_UnRegisterCallback()
861huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in HAL_UART_UnRegisterCallback()
865huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in HAL_UART_UnRegisterCallback()
869huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in HAL_UART_UnRegisterCallback()
873huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in HAL_UART_UnRegisterCallback()
877huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in HAL_UART_UnRegisterCallback()
881huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in HAL_UART_UnRegisterCallback()
885huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in HAL_UART_UnRegisterCallback()
889huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in HAL_UART_UnRegisterCallback()
893huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in HAL_UART_UnRegisterCallback()
897huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspInitCallb… in HAL_UART_UnRegisterCallback()
901huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDeInitCal… in HAL_UART_UnRegisterCallback()
905 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
911 else if (HAL_UART_STATE_RESET == huart->gState) in HAL_UART_UnRegisterCallback()
916 huart->MspInitCallback = HAL_UART_MspInit; in HAL_UART_UnRegisterCallback()
920 huart->MspDeInitCallback = HAL_UART_MspDeInit; in HAL_UART_UnRegisterCallback()
924 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
932 huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; in HAL_UART_UnRegisterCallback()
937 __HAL_UNLOCK(huart); in HAL_UART_UnRegisterCallback()
1039 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint3… in HAL_UART_Transmit() argument
1046 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit()
1053 __HAL_LOCK(huart); in HAL_UART_Transmit()
1055 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit()
1056 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit()
1061 huart->TxXferSize = Size; in HAL_UART_Transmit()
1062 huart->TxXferCount = Size; in HAL_UART_Transmit()
1065 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit()
1076 __HAL_UNLOCK(huart); in HAL_UART_Transmit()
1078 while (huart->TxXferCount > 0U) in HAL_UART_Transmit()
1080 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1086 huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); in HAL_UART_Transmit()
1091 huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); in HAL_UART_Transmit()
1094 huart->TxXferCount--; in HAL_UART_Transmit()
1097 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Transmit()
1103 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit()
1128 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32… in HAL_UART_Receive() argument
1136 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive()
1143 __HAL_LOCK(huart); in HAL_UART_Receive()
1145 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive()
1146 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive()
1151 huart->RxXferSize = Size; in HAL_UART_Receive()
1152 huart->RxXferCount = Size; in HAL_UART_Receive()
1155 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive()
1156 uhMask = huart->Mask; in HAL_UART_Receive()
1159 if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive()
1170 __HAL_UNLOCK(huart); in HAL_UART_Receive()
1173 while (huart->RxXferCount > 0U) in HAL_UART_Receive()
1175 if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_UART_Receive()
1181 *pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask); in HAL_UART_Receive()
1186 *pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask); in HAL_UART_Receive()
1189 huart->RxXferCount--; in HAL_UART_Receive()
1193 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Receive()
1213 HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Transmit_IT() argument
1216 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_IT()
1223 __HAL_LOCK(huart); in HAL_UART_Transmit_IT()
1225 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_IT()
1226 huart->TxXferSize = Size; in HAL_UART_Transmit_IT()
1227 huart->TxXferCount = Size; in HAL_UART_Transmit_IT()
1228 huart->TxISR = NULL; in HAL_UART_Transmit_IT()
1230 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_IT()
1231 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_IT()
1234 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Transmit_IT()
1237 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1239 huart->TxISR = UART_TxISR_16BIT_FIFOEN; in HAL_UART_Transmit_IT()
1243 huart->TxISR = UART_TxISR_8BIT_FIFOEN; in HAL_UART_Transmit_IT()
1246 __HAL_UNLOCK(huart); in HAL_UART_Transmit_IT()
1249 SET_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_Transmit_IT()
1254 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Transmit_IT()
1256 huart->TxISR = UART_TxISR_16BIT; in HAL_UART_Transmit_IT()
1260 huart->TxISR = UART_TxISR_8BIT; in HAL_UART_Transmit_IT()
1263 __HAL_UNLOCK(huart); in HAL_UART_Transmit_IT()
1266 SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_UART_Transmit_IT()
1287 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_IT() argument
1290 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_IT()
1297 __HAL_LOCK(huart); in HAL_UART_Receive_IT()
1299 huart->pRxBuffPtr = pData; in HAL_UART_Receive_IT()
1300 huart->RxXferSize = Size; in HAL_UART_Receive_IT()
1301 huart->RxXferCount = Size; in HAL_UART_Receive_IT()
1302 huart->RxISR = NULL; in HAL_UART_Receive_IT()
1305 UART_MASK_COMPUTATION(huart); in HAL_UART_Receive_IT()
1307 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive_IT()
1308 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive_IT()
1311 SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Receive_IT()
1314 if ((huart->FifoMode == UART_FIFOMODE_ENABLE) && (Size >= huart->NbRxDataToProcess)) in HAL_UART_Receive_IT()
1317 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1319 huart->RxISR = UART_RxISR_16BIT_FIFOEN; in HAL_UART_Receive_IT()
1323 huart->RxISR = UART_RxISR_8BIT_FIFOEN; in HAL_UART_Receive_IT()
1326 __HAL_UNLOCK(huart); in HAL_UART_Receive_IT()
1329 SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_Receive_IT()
1330 SET_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in HAL_UART_Receive_IT()
1335 … if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) in HAL_UART_Receive_IT()
1337 huart->RxISR = UART_RxISR_16BIT; in HAL_UART_Receive_IT()
1341 huart->RxISR = UART_RxISR_8BIT; in HAL_UART_Receive_IT()
1344 __HAL_UNLOCK(huart); in HAL_UART_Receive_IT()
1347 SET_BIT(huart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_UART_Receive_IT()
1368 HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Transmit_DMA() argument
1371 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_Transmit_DMA()
1378 __HAL_LOCK(huart); in HAL_UART_Transmit_DMA()
1380 huart->pTxBuffPtr = pData; in HAL_UART_Transmit_DMA()
1381 huart->TxXferSize = Size; in HAL_UART_Transmit_DMA()
1382 huart->TxXferCount = Size; in HAL_UART_Transmit_DMA()
1384 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Transmit_DMA()
1385 huart->gState = HAL_UART_STATE_BUSY_TX; in HAL_UART_Transmit_DMA()
1387 if (huart->hdmatx != NULL) in HAL_UART_Transmit_DMA()
1390 huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; in HAL_UART_Transmit_DMA()
1393 huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; in HAL_UART_Transmit_DMA()
1396 huart->hdmatx->XferErrorCallback = UART_DMAError; in HAL_UART_Transmit_DMA()
1399 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1402 …if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, … in HAL_UART_Transmit_DMA()
1405 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1407 __HAL_UNLOCK(huart); in HAL_UART_Transmit_DMA()
1410 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1416 if (huart->hmdmatx != NULL) in HAL_UART_Transmit_DMA()
1419 huart->hmdmatx->XferCpltCallback = UART_MDMATransmitCplt; in HAL_UART_Transmit_DMA()
1422 huart->hmdmatx->XferErrorCallback = UART_MDMAError; in HAL_UART_Transmit_DMA()
1425 huart->hmdmatx->XferAbortCallback = NULL; in HAL_UART_Transmit_DMA()
1428 …if (HAL_MDMA_Start_IT(huart->hmdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR… in HAL_UART_Transmit_DMA()
1431 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Transmit_DMA()
1433 __HAL_UNLOCK(huart); in HAL_UART_Transmit_DMA()
1436 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Transmit_DMA()
1443 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); in HAL_UART_Transmit_DMA()
1445 __HAL_UNLOCK(huart); in HAL_UART_Transmit_DMA()
1449 SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Transmit_DMA()
1471 HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) in HAL_UART_Receive_DMA() argument
1474 if (huart->RxState == HAL_UART_STATE_READY) in HAL_UART_Receive_DMA()
1481 __HAL_LOCK(huart); in HAL_UART_Receive_DMA()
1483 huart->pRxBuffPtr = pData; in HAL_UART_Receive_DMA()
1484 huart->RxXferSize = Size; in HAL_UART_Receive_DMA()
1486 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Receive_DMA()
1487 huart->RxState = HAL_UART_STATE_BUSY_RX; in HAL_UART_Receive_DMA()
1489 if (huart->hdmarx != NULL) in HAL_UART_Receive_DMA()
1492 huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; in HAL_UART_Receive_DMA()
1495 huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; in HAL_UART_Receive_DMA()
1498 huart->hdmarx->XferErrorCallback = UART_DMAError; in HAL_UART_Receive_DMA()
1501 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Receive_DMA()
1504 …if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, … in HAL_UART_Receive_DMA()
1507 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Receive_DMA()
1509 __HAL_UNLOCK(huart); in HAL_UART_Receive_DMA()
1512 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Receive_DMA()
1518 if (huart->hmdmarx != NULL) in HAL_UART_Receive_DMA()
1521 huart->hmdmarx->XferCpltCallback = UART_MDMAReceiveCplt; in HAL_UART_Receive_DMA()
1524 huart->hmdmarx->XferErrorCallback = UART_MDMAError; in HAL_UART_Receive_DMA()
1527 huart->hmdmarx->XferAbortCallback = NULL; in HAL_UART_Receive_DMA()
1530 …if (HAL_MDMA_Start_IT(huart->hmdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr… in HAL_UART_Receive_DMA()
1533 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Receive_DMA()
1535 __HAL_UNLOCK(huart); in HAL_UART_Receive_DMA()
1538 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Receive_DMA()
1544 __HAL_UNLOCK(huart); in HAL_UART_Receive_DMA()
1547 SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_Receive_DMA()
1550 SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_Receive_DMA()
1554 SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Receive_DMA()
1569 HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) in HAL_UART_DMAPause() argument
1571 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAPause()
1572 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAPause()
1574 __HAL_LOCK(huart); in HAL_UART_DMAPause()
1576 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAPause()
1580 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAPause()
1582 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAPause()
1586 CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAPause()
1587 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAPause()
1590 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAPause()
1593 __HAL_UNLOCK(huart); in HAL_UART_DMAPause()
1603 HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) in HAL_UART_DMAResume() argument
1605 __HAL_LOCK(huart); in HAL_UART_DMAResume()
1607 if (huart->gState == HAL_UART_STATE_BUSY_TX) in HAL_UART_DMAResume()
1610 SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAResume()
1612 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in HAL_UART_DMAResume()
1615 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_DMAResume()
1618 SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); in HAL_UART_DMAResume()
1619 SET_BIT(huart->Instance->CR3, USART_CR3_EIE); in HAL_UART_DMAResume()
1622 SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAResume()
1625 __HAL_UNLOCK(huart); in HAL_UART_DMAResume()
1635 HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) in HAL_UART_DMAStop() argument
1644 const HAL_UART_StateTypeDef gstate = huart->gState; in HAL_UART_DMAStop()
1645 const HAL_UART_StateTypeDef rxstate = huart->RxState; in HAL_UART_DMAStop()
1648 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in HAL_UART_DMAStop()
1651 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_DMAStop()
1654 if (huart->hdmatx != NULL) in HAL_UART_DMAStop()
1656 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_DMAStop()
1658 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1661 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1669 if (huart->hmdmatx != NULL) in HAL_UART_DMAStop()
1671 if (HAL_MDMA_Abort(huart->hmdmatx) != HAL_OK) in HAL_UART_DMAStop()
1673 if (HAL_MDMA_GetError(huart->hmdmatx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1676 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1684 UART_EndTxTransfer(huart); in HAL_UART_DMAStop()
1688 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in HAL_UART_DMAStop()
1691 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_DMAStop()
1694 if (huart->hdmarx != NULL) in HAL_UART_DMAStop()
1696 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_DMAStop()
1698 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1701 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1709 if (huart->hmdmarx != NULL) in HAL_UART_DMAStop()
1711 if (HAL_MDMA_Abort(huart->hmdmarx) != HAL_OK) in HAL_UART_DMAStop()
1713 if (HAL_MDMA_GetError(huart->hmdmarx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_DMAStop()
1716 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_DMAStop()
1724 UART_EndRxTransfer(huart); in HAL_UART_DMAStop()
1742 HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) in HAL_UART_Abort() argument
1745 …CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFNF… in HAL_UART_Abort()
1746 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE); in HAL_UART_Abort()
1749 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort()
1751 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort()
1754 if (huart->hdmatx != NULL) in HAL_UART_Abort()
1758 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1760 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_Abort()
1762 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1765 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1773 if (huart->hmdmatx != NULL) in HAL_UART_Abort()
1777 huart->hmdmatx->XferAbortCallback = NULL; in HAL_UART_Abort()
1779 if (HAL_MDMA_Abort(huart->hmdmatx) != HAL_OK) in HAL_UART_Abort()
1781 if (HAL_MDMA_GetError(huart->hmdmatx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1784 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1794 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort()
1796 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort()
1799 if (huart->hdmarx != NULL) in HAL_UART_Abort()
1803 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1805 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_Abort()
1807 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1810 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1818 if (huart->hmdmarx != NULL) in HAL_UART_Abort()
1822 huart->hmdmarx->XferAbortCallback = NULL; in HAL_UART_Abort()
1824 if (HAL_MDMA_Abort(huart->hmdmarx) != HAL_OK) in HAL_UART_Abort()
1826 if (HAL_MDMA_GetError(huart->hmdmarx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_Abort()
1829 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_Abort()
1839 huart->TxXferCount = 0U; in HAL_UART_Abort()
1840 huart->RxXferCount = 0U; in HAL_UART_Abort()
1843 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort()
1846 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort()
1848 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1852 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort()
1855 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1856 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort()
1858 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort()
1875 HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit() argument
1878 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit()
1879 CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit()
1882 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit()
1884 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit()
1887 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit()
1891 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1893 if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1895 if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1898 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1906 if (huart->hmdmatx != NULL) in HAL_UART_AbortTransmit()
1910 huart->hmdmatx->XferAbortCallback = NULL; in HAL_UART_AbortTransmit()
1912 if (HAL_MDMA_Abort(huart->hmdmatx) != HAL_OK) in HAL_UART_AbortTransmit()
1914 if (HAL_MDMA_GetError(huart->hmdmatx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_AbortTransmit()
1917 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortTransmit()
1927 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit()
1930 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit()
1932 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit()
1936 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit()
1953 HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive() argument
1956 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive()
1957 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE); in HAL_UART_AbortReceive()
1960 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive()
1962 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive()
1965 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive()
1969 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1971 if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1973 if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1976 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
1984 if (huart->hmdmarx != NULL) in HAL_UART_AbortReceive()
1988 huart->hmdmarx->XferAbortCallback = NULL; in HAL_UART_AbortReceive()
1990 if (HAL_MDMA_Abort(huart->hmdmarx) != HAL_OK) in HAL_UART_AbortReceive()
1992 if (HAL_MDMA_GetError(huart->hmdmarx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_UART_AbortReceive()
1995 huart->ErrorCode = HAL_UART_ERROR_DMA; in HAL_UART_AbortReceive()
2005 huart->RxXferCount = 0U; in HAL_UART_AbortReceive()
2008 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive()
2011 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive()
2014 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive()
2033 HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) in HAL_UART_Abort_IT() argument
2038 …CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE | USAR… in HAL_UART_Abort_IT()
2039 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_UART_Abort_IT()
2044 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2048 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2050 huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; in HAL_UART_Abort_IT()
2054 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2058 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2062 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2064 huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; in HAL_UART_Abort_IT()
2068 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2073 if (huart->hmdmatx != NULL) in HAL_UART_Abort_IT()
2077 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2079 huart->hmdmatx->XferAbortCallback = UART_MDMATxAbortCallback; in HAL_UART_Abort_IT()
2083 huart->hmdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2087 if (huart->hmdmarx != NULL) in HAL_UART_Abort_IT()
2091 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2093 huart->hmdmarx->XferAbortCallback = UART_MDMARxAbortCallback; in HAL_UART_Abort_IT()
2097 huart->hmdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2103 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_Abort_IT()
2106 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_Abort_IT()
2109 if (huart->hdmatx != NULL) in HAL_UART_Abort_IT()
2115 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2117 huart->hdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2126 if (huart->hmdmatx != NULL) in HAL_UART_Abort_IT()
2132 if (HAL_MDMA_Abort_IT(huart->hmdmatx) != HAL_OK) in HAL_UART_Abort_IT()
2134 huart->hmdmatx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2145 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_Abort_IT()
2147 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_Abort_IT()
2150 if (huart->hdmarx != NULL) in HAL_UART_Abort_IT()
2156 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2158 huart->hdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2168 if (huart->hmdmarx != NULL) in HAL_UART_Abort_IT()
2174 if (HAL_MDMA_Abort_IT(huart->hmdmarx) != HAL_OK) in HAL_UART_Abort_IT()
2176 huart->hmdmarx->XferAbortCallback = NULL; in HAL_UART_Abort_IT()
2191 huart->TxXferCount = 0U; in HAL_UART_Abort_IT()
2192 huart->RxXferCount = 0U; in HAL_UART_Abort_IT()
2195 huart->RxISR = NULL; in HAL_UART_Abort_IT()
2196 huart->TxISR = NULL; in HAL_UART_Abort_IT()
2199 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_Abort_IT()
2202 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_Abort_IT()
2205 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_Abort_IT()
2207 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2211 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_Abort_IT()
2214 huart->gState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2215 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_Abort_IT()
2220 huart->AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2223 HAL_UART_AbortCpltCallback(huart); in HAL_UART_Abort_IT()
2244 HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmit_IT() argument
2247 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TCIE | USART_CR1_TXEIE_TXFNFIE)); in HAL_UART_AbortTransmit_IT()
2248 CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in HAL_UART_AbortTransmit_IT()
2251 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) in HAL_UART_AbortTransmit_IT()
2253 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in HAL_UART_AbortTransmit_IT()
2256 if (huart->hdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2260 huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2263 if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2266 huart->hdmatx->XferAbortCallback(huart->hdmatx); in HAL_UART_AbortTransmit_IT()
2271 else if (huart->hmdmatx != NULL) in HAL_UART_AbortTransmit_IT()
2275 huart->hmdmatx->XferAbortCallback = UART_MDMATxOnlyAbortCallback; in HAL_UART_AbortTransmit_IT()
2278 if (HAL_MDMA_Abort_IT(huart->hmdmatx) != HAL_OK) in HAL_UART_AbortTransmit_IT()
2281 huart->hmdmatx->XferAbortCallback(huart->hmdmatx); in HAL_UART_AbortTransmit_IT()
2288 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2291 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2294 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2299 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2302 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2309 huart->TxXferCount = 0U; in HAL_UART_AbortTransmit_IT()
2312 huart->TxISR = NULL; in HAL_UART_AbortTransmit_IT()
2315 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in HAL_UART_AbortTransmit_IT()
2317 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in HAL_UART_AbortTransmit_IT()
2321 huart->gState = HAL_UART_STATE_READY; in HAL_UART_AbortTransmit_IT()
2326 huart->AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2329 HAL_UART_AbortTransmitCpltCallback(huart); in HAL_UART_AbortTransmit_IT()
2350 HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) in HAL_UART_AbortReceive_IT() argument
2353 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE)); in HAL_UART_AbortReceive_IT()
2354 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in HAL_UART_AbortReceive_IT()
2357 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_AbortReceive_IT()
2359 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_AbortReceive_IT()
2362 if (huart->hdmarx != NULL) in HAL_UART_AbortReceive_IT()
2366 huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2369 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2372 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_AbortReceive_IT()
2377 else if (huart->hmdmarx != NULL) in HAL_UART_AbortReceive_IT()
2381 huart->hmdmarx->XferAbortCallback = UART_MDMARxOnlyAbortCallback; in HAL_UART_AbortReceive_IT()
2384 if (HAL_MDMA_Abort_IT(huart->hmdmarx) != HAL_OK) in HAL_UART_AbortReceive_IT()
2387 huart->hmdmarx->XferAbortCallback(huart->hmdmarx); in HAL_UART_AbortReceive_IT()
2394 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2397 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2400 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2403 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in HAL_UART_AbortReceive_IT()
2406 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2411 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2414 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2421 huart->RxXferCount = 0U; in HAL_UART_AbortReceive_IT()
2424 huart->pRxBuffPtr = NULL; in HAL_UART_AbortReceive_IT()
2427 … __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in HAL_UART_AbortReceive_IT()
2430 huart->RxState = HAL_UART_STATE_READY; in HAL_UART_AbortReceive_IT()
2435 huart->AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2438 HAL_UART_AbortReceiveCpltCallback(huart); in HAL_UART_AbortReceive_IT()
2450 void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) in HAL_UART_IRQHandler() argument
2452 uint32_t isrflags = READ_REG(huart->Instance->ISR); in HAL_UART_IRQHandler()
2453 uint32_t cr1its = READ_REG(huart->Instance->CR1); in HAL_UART_IRQHandler()
2454 uint32_t cr3its = READ_REG(huart->Instance->CR3); in HAL_UART_IRQHandler()
2468 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2470 huart->RxISR(huart); in HAL_UART_IRQHandler()
2484 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); in HAL_UART_IRQHandler()
2486 huart->ErrorCode |= HAL_UART_ERROR_PE; in HAL_UART_IRQHandler()
2492 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); in HAL_UART_IRQHandler()
2494 huart->ErrorCode |= HAL_UART_ERROR_FE; in HAL_UART_IRQHandler()
2500 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); in HAL_UART_IRQHandler()
2502 huart->ErrorCode |= HAL_UART_ERROR_NE; in HAL_UART_IRQHandler()
2510 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); in HAL_UART_IRQHandler()
2512 huart->ErrorCode |= HAL_UART_ERROR_ORE; in HAL_UART_IRQHandler()
2518 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in HAL_UART_IRQHandler()
2520 huart->ErrorCode |= HAL_UART_ERROR_RTO; in HAL_UART_IRQHandler()
2524 if (huart->ErrorCode != HAL_UART_ERROR_NONE) in HAL_UART_IRQHandler()
2531 if (huart->RxISR != NULL) in HAL_UART_IRQHandler()
2533 huart->RxISR(huart); in HAL_UART_IRQHandler()
2542 errorcode = huart->ErrorCode; in HAL_UART_IRQHandler()
2543 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || in HAL_UART_IRQHandler()
2549 UART_EndRxTransfer(huart); in HAL_UART_IRQHandler()
2552 if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) in HAL_UART_IRQHandler()
2554 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in HAL_UART_IRQHandler()
2557 if (huart->hdmarx != NULL) in HAL_UART_IRQHandler()
2561 huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; in HAL_UART_IRQHandler()
2564 if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2567 huart->hdmarx->XferAbortCallback(huart->hdmarx); in HAL_UART_IRQHandler()
2572 else if (huart->hmdmarx != NULL) in HAL_UART_IRQHandler()
2576 huart->hmdmarx->XferAbortCallback = UART_MDMAAbortOnError; in HAL_UART_IRQHandler()
2579 if (HAL_MDMA_Abort_IT(huart->hmdmarx) != HAL_OK) in HAL_UART_IRQHandler()
2582 huart->hmdmarx->XferAbortCallback(huart->hmdmarx); in HAL_UART_IRQHandler()
2591 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2594 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2604 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2607 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2617 huart->ErrorCallback(huart); in HAL_UART_IRQHandler()
2620 HAL_UART_ErrorCallback(huart); in HAL_UART_IRQHandler()
2622 huart->ErrorCode = HAL_UART_ERROR_NONE; in HAL_UART_IRQHandler()
2632 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF); in HAL_UART_IRQHandler()
2639 huart->WakeupCallback(huart); in HAL_UART_IRQHandler()
2642 HAL_UARTEx_WakeupCallback(huart); in HAL_UART_IRQHandler()
2652 if (huart->TxISR != NULL) in HAL_UART_IRQHandler()
2654 huart->TxISR(huart); in HAL_UART_IRQHandler()
2662 UART_EndTransmit_IT(huart); in HAL_UART_IRQHandler()
2671 huart->TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2674 HAL_UARTEx_TxFifoEmptyCallback(huart); in HAL_UART_IRQHandler()
2684 huart->RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2687 HAL_UARTEx_RxFifoFullCallback(huart); in HAL_UART_IRQHandler()
2698 __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxCpltCallback() argument
2701 UNUSED(huart); in HAL_UART_TxCpltCallback()
2713 __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_TxHalfCpltCallback() argument
2716 UNUSED(huart); in HAL_UART_TxHalfCpltCallback()
2728 __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxCpltCallback() argument
2731 UNUSED(huart); in HAL_UART_RxCpltCallback()
2743 __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_RxHalfCpltCallback() argument
2746 UNUSED(huart); in HAL_UART_RxHalfCpltCallback()
2758 __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) in HAL_UART_ErrorCallback() argument
2761 UNUSED(huart); in HAL_UART_ErrorCallback()
2773 __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortCpltCallback() argument
2776 UNUSED(huart); in HAL_UART_AbortCpltCallback()
2788 __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortTransmitCpltCallback() argument
2791 UNUSED(huart); in HAL_UART_AbortTransmitCpltCallback()
2803 __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) in HAL_UART_AbortReceiveCpltCallback() argument
2806 UNUSED(huart); in HAL_UART_AbortReceiveCpltCallback()
2850 void HAL_UART_ReceiverTimeout_Config(UART_HandleTypeDef *huart, uint32_t TimeoutValue) in HAL_UART_ReceiverTimeout_Config() argument
2853 MODIFY_REG(huart->Instance->RTOR, USART_RTOR_RTO, TimeoutValue); in HAL_UART_ReceiverTimeout_Config()
2862 HAL_StatusTypeDef HAL_UART_EnableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_EnableReceiverTimeout() argument
2864 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_EnableReceiverTimeout()
2867 __HAL_LOCK(huart); in HAL_UART_EnableReceiverTimeout()
2869 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_EnableReceiverTimeout()
2872 SET_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_EnableReceiverTimeout()
2874 huart->gState = HAL_UART_STATE_READY; in HAL_UART_EnableReceiverTimeout()
2877 __HAL_UNLOCK(huart); in HAL_UART_EnableReceiverTimeout()
2893 HAL_StatusTypeDef HAL_UART_DisableReceiverTimeout(UART_HandleTypeDef *huart) in HAL_UART_DisableReceiverTimeout() argument
2895 if (huart->gState == HAL_UART_STATE_READY) in HAL_UART_DisableReceiverTimeout()
2898 __HAL_LOCK(huart); in HAL_UART_DisableReceiverTimeout()
2900 huart->gState = HAL_UART_STATE_BUSY; in HAL_UART_DisableReceiverTimeout()
2903 CLEAR_BIT(huart->Instance->CR2, USART_CR2_RTOEN); in HAL_UART_DisableReceiverTimeout()
2905 huart->gState = HAL_UART_STATE_READY; in HAL_UART_DisableReceiverTimeout()
2908 __HAL_UNLOCK(huart); in HAL_UART_DisableReceiverTimeout()
2924 HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnableMuteMode() argument
2926 __HAL_LOCK(huart); in HAL_MultiProcessor_EnableMuteMode()
2928 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_EnableMuteMode()
2931 SET_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_EnableMuteMode()
2933 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_EnableMuteMode()
2935 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_EnableMuteMode()
2944 HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_DisableMuteMode() argument
2946 __HAL_LOCK(huart); in HAL_MultiProcessor_DisableMuteMode()
2948 huart->gState = HAL_UART_STATE_BUSY; in HAL_MultiProcessor_DisableMuteMode()
2951 CLEAR_BIT(huart->Instance->CR1, USART_CR1_MME); in HAL_MultiProcessor_DisableMuteMode()
2953 huart->gState = HAL_UART_STATE_READY; in HAL_MultiProcessor_DisableMuteMode()
2955 return (UART_CheckIdleState(huart)); in HAL_MultiProcessor_DisableMuteMode()
2964 void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) in HAL_MultiProcessor_EnterMuteMode() argument
2966 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST); in HAL_MultiProcessor_EnterMuteMode()
2974 HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableTransmitter() argument
2976 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2977 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableTransmitter()
2980 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableTransmitter()
2983 SET_BIT(huart->Instance->CR1, USART_CR1_TE); in HAL_HalfDuplex_EnableTransmitter()
2985 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableTransmitter()
2987 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableTransmitter()
2997 HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) in HAL_HalfDuplex_EnableReceiver() argument
2999 __HAL_LOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3000 huart->gState = HAL_UART_STATE_BUSY; in HAL_HalfDuplex_EnableReceiver()
3003 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in HAL_HalfDuplex_EnableReceiver()
3006 SET_BIT(huart->Instance->CR1, USART_CR1_RE); in HAL_HalfDuplex_EnableReceiver()
3008 huart->gState = HAL_UART_STATE_READY; in HAL_HalfDuplex_EnableReceiver()
3010 __HAL_UNLOCK(huart); in HAL_HalfDuplex_EnableReceiver()
3021 HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) in HAL_LIN_SendBreak() argument
3024 assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); in HAL_LIN_SendBreak()
3026 __HAL_LOCK(huart); in HAL_LIN_SendBreak()
3028 huart->gState = HAL_UART_STATE_BUSY; in HAL_LIN_SendBreak()
3031 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST); in HAL_LIN_SendBreak()
3033 huart->gState = HAL_UART_STATE_READY; in HAL_LIN_SendBreak()
3035 __HAL_UNLOCK(huart); in HAL_LIN_SendBreak()
3066 HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart) in HAL_UART_GetState() argument
3070 temp1 = huart->gState; in HAL_UART_GetState()
3071 temp2 = huart->RxState; in HAL_UART_GetState()
3082 uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart) in HAL_UART_GetError() argument
3084 return huart->ErrorCode; in HAL_UART_GetError()
3104 void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) in UART_InitCallbacksToDefault() argument
3107huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCa… in UART_InitCallbacksToDefault()
3108huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallba… in UART_InitCallbacksToDefault()
3109huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCa… in UART_InitCallbacksToDefault()
3110huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallba… in UART_InitCallbacksToDefault()
3111huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallbac… in UART_InitCallbacksToDefault()
3112huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCal… in UART_InitCallbacksToDefault()
3113huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransmi… in UART_InitCallbacksToDefault()
3114huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceive… in UART_InitCallbacksToDefault()
3115huart->WakeupCallback = HAL_UARTEx_WakeupCallback; /* Legacy weak WakeupCallba… in UART_InitCallbacksToDefault()
3116huart->RxFifoFullCallback = HAL_UARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFullCa… in UART_InitCallbacksToDefault()
3117huart->TxFifoEmptyCallback = HAL_UARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmptyC… in UART_InitCallbacksToDefault()
3127 HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) in UART_SetConfig() argument
3139 assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); in UART_SetConfig()
3140 assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); in UART_SetConfig()
3141 assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); in UART_SetConfig()
3142 assert_param(IS_UART_ONE_BIT_SAMPLE(huart->Init.OneBitSampling)); in UART_SetConfig()
3144 assert_param(IS_UART_PARITY(huart->Init.Parity)); in UART_SetConfig()
3145 assert_param(IS_UART_MODE(huart->Init.Mode)); in UART_SetConfig()
3146 assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); in UART_SetConfig()
3147 assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); in UART_SetConfig()
3148 assert_param(IS_UART_PRESCALER(huart->Init.ClockPrescaler)); in UART_SetConfig()
3157 …tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.Ov… in UART_SetConfig()
3158 tmpreg |= (uint32_t)huart->FifoMode; in UART_SetConfig()
3159 MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in UART_SetConfig()
3164 MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); in UART_SetConfig()
3172 tmpreg = (uint32_t)huart->Init.HwFlowCtl; in UART_SetConfig()
3174 tmpreg |= huart->Init.OneBitSampling; in UART_SetConfig()
3175 MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); in UART_SetConfig()
3180 MODIFY_REG(huart->Instance->PRESC, USART_PRESC_PRESCALER, huart->Init.ClockPrescaler); in UART_SetConfig()
3183 UART_GETCLOCKSOURCE(huart, clocksource); in UART_SetConfig()
3185 if (huart->Init.OverSampling == UART_OVERSAMPLING_8) in UART_SetConfig()
3191 … usartdiv = (uint16_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3195 … usartdiv = (uint16_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3199 … usartdiv = (uint16_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3203 … = (uint16_t)(UART_DIV_SAMPLING8(pll3_clocks.PLL3_Q_Frequency, huart->Init.BaudRate, huart->Init.C… in UART_SetConfig()
3207 … = (uint16_t)(UART_DIV_SAMPLING8(pll4_clocks.PLL4_Q_Frequency, huart->Init.BaudRate, huart->Init.C… in UART_SetConfig()
3210 …usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->Init.BaudRate, huart->Init.ClockPrescal… in UART_SetConfig()
3213 …usartdiv = (uint16_t)(UART_DIV_SAMPLING8(CSI_VALUE, huart->Init.BaudRate, huart->Init.ClockPrescal… in UART_SetConfig()
3216 …usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSE_VALUE, huart->Init.BaudRate, huart->Init.ClockPrescal… in UART_SetConfig()
3228 huart->Instance->BRR = brrtemp; in UART_SetConfig()
3241 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3245 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3249 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate, huart->Init.ClockPrescaler)); in UART_SetConfig()
3253 …= (uint16_t)(UART_DIV_SAMPLING16(pll3_clocks.PLL3_Q_Frequency, huart->Init.BaudRate, huart->Init.C… in UART_SetConfig()
3257 …= (uint16_t)(UART_DIV_SAMPLING16(pll4_clocks.PLL4_Q_Frequency, huart->Init.BaudRate, huart->Init.C… in UART_SetConfig()
3260 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->Init.BaudRate, huart->Init.ClockPresca… in UART_SetConfig()
3263 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(CSI_VALUE, huart->Init.BaudRate, huart->Init.ClockPresca… in UART_SetConfig()
3266 …usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSE_VALUE, huart->Init.BaudRate, huart->Init.ClockPresca… in UART_SetConfig()
3276 huart->Instance->BRR = usartdiv; in UART_SetConfig()
3285 huart->NbTxDataToProcess = 1; in UART_SetConfig()
3286 huart->NbRxDataToProcess = 1; in UART_SetConfig()
3289 huart->RxISR = NULL; in UART_SetConfig()
3290 huart->TxISR = NULL; in UART_SetConfig()
3300 void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) in UART_AdvFeatureConfig() argument
3303 assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); in UART_AdvFeatureConfig()
3306 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) in UART_AdvFeatureConfig()
3308 assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); in UART_AdvFeatureConfig()
3309 MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); in UART_AdvFeatureConfig()
3313 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) in UART_AdvFeatureConfig()
3315 assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); in UART_AdvFeatureConfig()
3316 MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); in UART_AdvFeatureConfig()
3320 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) in UART_AdvFeatureConfig()
3322 assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); in UART_AdvFeatureConfig()
3323 MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); in UART_AdvFeatureConfig()
3327 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) in UART_AdvFeatureConfig()
3329 assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); in UART_AdvFeatureConfig()
3330 MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); in UART_AdvFeatureConfig()
3334 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) in UART_AdvFeatureConfig()
3336 assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); in UART_AdvFeatureConfig()
3337 MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); in UART_AdvFeatureConfig()
3341 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) in UART_AdvFeatureConfig()
3343 assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); in UART_AdvFeatureConfig()
3344 MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); in UART_AdvFeatureConfig()
3348 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) in UART_AdvFeatureConfig()
3350 assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); in UART_AdvFeatureConfig()
3351 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); in UART_AdvFeatureConfig()
3352 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); in UART_AdvFeatureConfig()
3354 if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) in UART_AdvFeatureConfig()
3356 assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); in UART_AdvFeatureConfig()
3357 MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); in UART_AdvFeatureConfig()
3362 if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) in UART_AdvFeatureConfig()
3364 assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); in UART_AdvFeatureConfig()
3365 MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); in UART_AdvFeatureConfig()
3374 HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) in UART_CheckIdleState() argument
3379 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_CheckIdleState()
3385 if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in UART_CheckIdleState()
3388 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3396 if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in UART_CheckIdleState()
3399 …if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) … in UART_CheckIdleState()
3407 huart->gState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3408 huart->RxState = HAL_UART_STATE_READY; in UART_CheckIdleState()
3410 __HAL_UNLOCK(huart); in UART_CheckIdleState()
3424 HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus … in UART_WaitOnFlagUntilTimeout() argument
3428 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) in UART_WaitOnFlagUntilTimeout()
3436 …CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFNF… in UART_WaitOnFlagUntilTimeout()
3437 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_WaitOnFlagUntilTimeout()
3439 huart->gState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3440 huart->RxState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3442 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3447 if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) in UART_WaitOnFlagUntilTimeout()
3449 if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET) in UART_WaitOnFlagUntilTimeout()
3452 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF); in UART_WaitOnFlagUntilTimeout()
3455 …CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFNF… in UART_WaitOnFlagUntilTimeout()
3456 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_WaitOnFlagUntilTimeout()
3458 huart->gState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3459 huart->RxState = HAL_UART_STATE_READY; in UART_WaitOnFlagUntilTimeout()
3460 huart->ErrorCode = HAL_UART_ERROR_RTO; in UART_WaitOnFlagUntilTimeout()
3463 __HAL_UNLOCK(huart); in UART_WaitOnFlagUntilTimeout()
3479 static void UART_EndTxTransfer(UART_HandleTypeDef *huart) in UART_EndTxTransfer() argument
3482 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE)); in UART_EndTxTransfer()
3483 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_TXFTIE)); in UART_EndTxTransfer()
3486 huart->gState = HAL_UART_STATE_READY; in UART_EndTxTransfer()
3495 static void UART_EndRxTransfer(UART_HandleTypeDef *huart) in UART_EndRxTransfer() argument
3498 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_EndRxTransfer()
3499 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_EndRxTransfer()
3502 huart->RxState = HAL_UART_STATE_READY; in UART_EndRxTransfer()
3505 huart->RxISR = NULL; in UART_EndRxTransfer()
3516 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATransmitCplt() local
3521 huart->TxXferCount = 0U; in UART_DMATransmitCplt()
3525 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_DMATransmitCplt()
3528 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_DMATransmitCplt()
3535 huart->TxCpltCallback(huart); in UART_DMATransmitCplt()
3538 HAL_UART_TxCpltCallback(huart); in UART_DMATransmitCplt()
3550 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxHalfCplt() local
3554 huart->TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3557 HAL_UART_TxHalfCpltCallback(huart); in UART_DMATxHalfCplt()
3568 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAReceiveCplt() local
3573 huart->RxXferCount = 0U; in UART_DMAReceiveCplt()
3576 CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_DMAReceiveCplt()
3577 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_DMAReceiveCplt()
3581 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_DMAReceiveCplt()
3584 huart->RxState = HAL_UART_STATE_READY; in UART_DMAReceiveCplt()
3589 huart->RxCpltCallback(huart); in UART_DMAReceiveCplt()
3592 HAL_UART_RxCpltCallback(huart); in UART_DMAReceiveCplt()
3603 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxHalfCplt() local
3607 huart->RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3610 HAL_UART_RxHalfCpltCallback(huart); in UART_DMARxHalfCplt()
3621 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAError() local
3623 const HAL_UART_StateTypeDef gstate = huart->gState; in UART_DMAError()
3624 const HAL_UART_StateTypeDef rxstate = huart->RxState; in UART_DMAError()
3627 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && in UART_DMAError()
3630 huart->TxXferCount = 0U; in UART_DMAError()
3631 UART_EndTxTransfer(huart); in UART_DMAError()
3635 if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && in UART_DMAError()
3638 huart->RxXferCount = 0U; in UART_DMAError()
3639 UART_EndRxTransfer(huart); in UART_DMAError()
3642 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_DMAError()
3646 huart->ErrorCallback(huart); in UART_DMAError()
3649 HAL_UART_ErrorCallback(huart); in UART_DMAError()
3661 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMAAbortOnError() local
3662 huart->RxXferCount = 0U; in UART_DMAAbortOnError()
3663 huart->TxXferCount = 0U; in UART_DMAAbortOnError()
3667 huart->ErrorCallback(huart); in UART_DMAAbortOnError()
3670 HAL_UART_ErrorCallback(huart); in UART_DMAAbortOnError()
3684 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxAbortCallback() local
3686 huart->hdmatx->XferAbortCallback = NULL; in UART_DMATxAbortCallback()
3689 if (huart->hdmarx != NULL) in UART_DMATxAbortCallback()
3691 if (huart->hdmarx->XferAbortCallback != NULL) in UART_DMATxAbortCallback()
3698 huart->TxXferCount = 0U; in UART_DMATxAbortCallback()
3699 huart->RxXferCount = 0U; in UART_DMATxAbortCallback()
3702 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMATxAbortCallback()
3705 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMATxAbortCallback()
3708 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxAbortCallback()
3710 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxAbortCallback()
3714 huart->gState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3715 huart->RxState = HAL_UART_STATE_READY; in UART_DMATxAbortCallback()
3720 huart->AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3723 HAL_UART_AbortCpltCallback(huart); in UART_DMATxAbortCallback()
3738 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMARxAbortCallback() local
3740 huart->hdmarx->XferAbortCallback = NULL; in UART_DMARxAbortCallback()
3743 if (huart->hdmatx != NULL) in UART_DMARxAbortCallback()
3745 if (huart->hdmatx->XferAbortCallback != NULL) in UART_DMARxAbortCallback()
3752 huart->TxXferCount = 0U; in UART_DMARxAbortCallback()
3753 huart->RxXferCount = 0U; in UART_DMARxAbortCallback()
3756 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_DMARxAbortCallback()
3759 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxAbortCallback()
3762 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxAbortCallback()
3765 huart->gState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3766 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxAbortCallback()
3771 huart->AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3774 HAL_UART_AbortCpltCallback(huart); in UART_DMARxAbortCallback()
3789 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); in UART_DMATxOnlyAbortCallback() local
3791 huart->TxXferCount = 0U; in UART_DMATxOnlyAbortCallback()
3794 if (huart->FifoMode == UART_FIFOMODE_ENABLE) in UART_DMATxOnlyAbortCallback()
3796 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST); in UART_DMATxOnlyAbortCallback()
3800 huart->gState = HAL_UART_STATE_READY; in UART_DMATxOnlyAbortCallback()
3805 huart->AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3808 HAL_UART_AbortTransmitCpltCallback(huart); in UART_DMATxOnlyAbortCallback()
3822 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in UART_DMARxOnlyAbortCallback() local
3824 huart->RxXferCount = 0U; in UART_DMARxOnlyAbortCallback()
3827 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_DMARxOnlyAbortCallback()
3830 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_DMARxOnlyAbortCallback()
3833 huart->RxState = HAL_UART_STATE_READY; in UART_DMARxOnlyAbortCallback()
3838 huart->AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3841 HAL_UART_AbortReceiveCpltCallback(huart); in UART_DMARxOnlyAbortCallback()
3853 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMATransmitCplt() local
3855 huart->TxXferCount = 0U; in UART_MDMATransmitCplt()
3859 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); in UART_MDMATransmitCplt()
3862 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_MDMATransmitCplt()
3866 huart->TxCpltCallback(huart); in UART_MDMATransmitCplt()
3869 HAL_UART_TxCpltCallback(huart); in UART_MDMATransmitCplt()
3880 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMAReceiveCplt() local
3883 huart->RxXferCount = 0U; in UART_MDMAReceiveCplt()
3886 CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_MDMAReceiveCplt()
3887 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_MDMAReceiveCplt()
3891 CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); in UART_MDMAReceiveCplt()
3894 huart->RxState = HAL_UART_STATE_READY; in UART_MDMAReceiveCplt()
3898 huart->RxCpltCallback(huart); in UART_MDMAReceiveCplt()
3901 HAL_UART_RxCpltCallback(huart); in UART_MDMAReceiveCplt()
3912 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMAError() local
3915 if ((huart->gState == HAL_UART_STATE_BUSY_TX) in UART_MDMAError()
3916 && (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))) in UART_MDMAError()
3918 huart->TxXferCount = 0U; in UART_MDMAError()
3919 UART_EndTxTransfer(huart); in UART_MDMAError()
3923 if ((huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_MDMAError()
3924 && (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))) in UART_MDMAError()
3926 huart->RxXferCount = 0U; in UART_MDMAError()
3927 UART_EndRxTransfer(huart); in UART_MDMAError()
3930 huart->ErrorCode |= HAL_UART_ERROR_DMA; in UART_MDMAError()
3933 huart->ErrorCallback(huart); in UART_MDMAError()
3936 HAL_UART_ErrorCallback(huart); in UART_MDMAError()
3948 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMAAbortOnError() local
3949 huart->RxXferCount = 0U; in UART_MDMAAbortOnError()
3950 huart->TxXferCount = 0U; in UART_MDMAAbortOnError()
3954 huart->ErrorCallback(huart); in UART_MDMAAbortOnError()
3957 HAL_UART_ErrorCallback(huart); in UART_MDMAAbortOnError()
3971 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMATxAbortCallback() local
3973 huart->hmdmatx->XferAbortCallback = NULL; in UART_MDMATxAbortCallback()
3976 if (huart->hmdmarx != NULL) in UART_MDMATxAbortCallback()
3978 if (huart->hmdmarx->XferAbortCallback != NULL) in UART_MDMATxAbortCallback()
3985 huart->TxXferCount = 0U; in UART_MDMATxAbortCallback()
3986 huart->RxXferCount = 0U; in UART_MDMATxAbortCallback()
3989 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_MDMATxAbortCallback()
3992 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_MDMATxAbortCallback()
3995 huart->gState = HAL_UART_STATE_READY; in UART_MDMATxAbortCallback()
3996 huart->RxState = HAL_UART_STATE_READY; in UART_MDMATxAbortCallback()
4001 huart->AbortCpltCallback(huart); in UART_MDMATxAbortCallback()
4004 HAL_UART_AbortCpltCallback(huart); in UART_MDMATxAbortCallback()
4018 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMARxAbortCallback() local
4020 huart->hmdmarx->XferAbortCallback = NULL; in UART_MDMARxAbortCallback()
4023 if (huart->hmdmatx != NULL) in UART_MDMARxAbortCallback()
4025 if (huart->hmdmatx->XferAbortCallback != NULL) in UART_MDMARxAbortCallback()
4032 huart->TxXferCount = 0U; in UART_MDMARxAbortCallback()
4033 huart->RxXferCount = 0U; in UART_MDMARxAbortCallback()
4036 huart->ErrorCode = HAL_UART_ERROR_NONE; in UART_MDMARxAbortCallback()
4039 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_MDMARxAbortCallback()
4042 huart->gState = HAL_UART_STATE_READY; in UART_MDMARxAbortCallback()
4043 huart->RxState = HAL_UART_STATE_READY; in UART_MDMARxAbortCallback()
4048 huart->AbortCpltCallback(huart); in UART_MDMARxAbortCallback()
4051 HAL_UART_AbortCpltCallback(huart); in UART_MDMARxAbortCallback()
4066 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hmdma->Parent); in UART_MDMATxOnlyAbortCallback() local
4068 huart->TxXferCount = 0U; in UART_MDMATxOnlyAbortCallback()
4071 huart->gState = HAL_UART_STATE_READY; in UART_MDMATxOnlyAbortCallback()
4076 huart->AbortTransmitCpltCallback(huart); in UART_MDMATxOnlyAbortCallback()
4079 HAL_UART_AbortTransmitCpltCallback(huart); in UART_MDMATxOnlyAbortCallback()
4093 UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((MDMA_HandleTypeDef *)hmdma)->Parent; in UART_MDMARxOnlyAbortCallback() local
4095 huart->RxXferCount = 0U; in UART_MDMARxOnlyAbortCallback()
4098 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF); in UART_MDMARxOnlyAbortCallback()
4101 huart->RxState = HAL_UART_STATE_READY; in UART_MDMARxOnlyAbortCallback()
4106 huart->AbortReceiveCpltCallback(huart); in UART_MDMARxOnlyAbortCallback()
4109 HAL_UART_AbortReceiveCpltCallback(huart); in UART_MDMARxOnlyAbortCallback()
4121 static void UART_TxISR_8BIT(UART_HandleTypeDef *huart) in UART_TxISR_8BIT() argument
4124 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT()
4126 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT()
4129 CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_8BIT()
4132 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT()
4136 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT()
4137 huart->pTxBuffPtr++; in UART_TxISR_8BIT()
4138 huart->TxXferCount--; in UART_TxISR_8BIT()
4150 static void UART_TxISR_16BIT(UART_HandleTypeDef *huart) in UART_TxISR_16BIT() argument
4155 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT()
4157 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT()
4160 CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in UART_TxISR_16BIT()
4163 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT()
4167 tmp = (uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT()
4168 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT()
4169 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT()
4170 huart->TxXferCount--; in UART_TxISR_16BIT()
4182 static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_8BIT_FIFOEN() argument
4187 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_8BIT_FIFOEN()
4189 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_8BIT_FIFOEN()
4191 if (huart->TxXferCount == 0U) in UART_TxISR_8BIT_FIFOEN()
4194 CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_8BIT_FIFOEN()
4197 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_8BIT_FIFOEN()
4201 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_8BIT_FIFOEN()
4203 huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF); in UART_TxISR_8BIT_FIFOEN()
4204 huart->pTxBuffPtr++; in UART_TxISR_8BIT_FIFOEN()
4205 huart->TxXferCount--; in UART_TxISR_8BIT_FIFOEN()
4222 static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_TxISR_16BIT_FIFOEN() argument
4228 if (huart->gState == HAL_UART_STATE_BUSY_TX) in UART_TxISR_16BIT_FIFOEN()
4230 for (nb_tx_data = huart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in UART_TxISR_16BIT_FIFOEN()
4232 if (huart->TxXferCount == 0U) in UART_TxISR_16BIT_FIFOEN()
4235 CLEAR_BIT(huart->Instance->CR3, USART_CR3_TXFTIE); in UART_TxISR_16BIT_FIFOEN()
4238 SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_TxISR_16BIT_FIFOEN()
4242 else if (READ_BIT(huart->Instance->ISR, USART_ISR_TXE_TXFNF) != 0U) in UART_TxISR_16BIT_FIFOEN()
4244 tmp = (uint16_t *) huart->pTxBuffPtr; in UART_TxISR_16BIT_FIFOEN()
4245 huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL); in UART_TxISR_16BIT_FIFOEN()
4246 huart->pTxBuffPtr += 2U; in UART_TxISR_16BIT_FIFOEN()
4247 huart->TxXferCount--; in UART_TxISR_16BIT_FIFOEN()
4263 static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) in UART_EndTransmit_IT() argument
4266 CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); in UART_EndTransmit_IT()
4269 huart->gState = HAL_UART_STATE_READY; in UART_EndTransmit_IT()
4272 huart->TxISR = NULL; in UART_EndTransmit_IT()
4276 huart->TxCpltCallback(huart); in UART_EndTransmit_IT()
4279 HAL_UART_TxCpltCallback(huart); in UART_EndTransmit_IT()
4288 static void UART_RxISR_8BIT(UART_HandleTypeDef *huart) in UART_RxISR_8BIT() argument
4290 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT()
4294 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT()
4296 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT()
4297 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT()
4298 huart->pRxBuffPtr++; in UART_RxISR_8BIT()
4299 huart->RxXferCount--; in UART_RxISR_8BIT()
4301 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT()
4304 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_8BIT()
4307 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_8BIT()
4310 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT()
4313 huart->RxISR = NULL; in UART_RxISR_8BIT()
4317 huart->RxCpltCallback(huart); in UART_RxISR_8BIT()
4320 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT()
4327 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT()
4338 static void UART_RxISR_16BIT(UART_HandleTypeDef *huart) in UART_RxISR_16BIT() argument
4341 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT()
4345 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT()
4347 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT()
4348 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT()
4350 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT()
4351 huart->RxXferCount--; in UART_RxISR_16BIT()
4353 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT()
4356 CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in UART_RxISR_16BIT()
4359 CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); in UART_RxISR_16BIT()
4362 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT()
4365 huart->RxISR = NULL; in UART_RxISR_16BIT()
4369 huart->RxCpltCallback(huart); in UART_RxISR_16BIT()
4372 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT()
4379 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT()
4390 static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_8BIT_FIFOEN() argument
4392 uint16_t uhMask = huart->Mask; in UART_RxISR_8BIT_FIFOEN()
4398 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_8BIT_FIFOEN()
4400 for (nb_rx_data = huart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in UART_RxISR_8BIT_FIFOEN()
4402 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_8BIT_FIFOEN()
4403 *huart->pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask); in UART_RxISR_8BIT_FIFOEN()
4404 huart->pRxBuffPtr++; in UART_RxISR_8BIT_FIFOEN()
4405 huart->RxXferCount--; in UART_RxISR_8BIT_FIFOEN()
4407 if (huart->RxXferCount == 0U) in UART_RxISR_8BIT_FIFOEN()
4410 CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_8BIT_FIFOEN()
4413 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_8BIT_FIFOEN()
4416 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_8BIT_FIFOEN()
4419 huart->RxISR = NULL; in UART_RxISR_8BIT_FIFOEN()
4423 huart->RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4426 HAL_UART_RxCpltCallback(huart); in UART_RxISR_8BIT_FIFOEN()
4435 rxdatacount = huart->RxXferCount; in UART_RxISR_8BIT_FIFOEN()
4436 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_8BIT_FIFOEN()
4439 CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_8BIT_FIFOEN()
4442 huart->RxISR = UART_RxISR_8BIT; in UART_RxISR_8BIT_FIFOEN()
4445 SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_8BIT_FIFOEN()
4451 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_8BIT_FIFOEN()
4462 static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart) in UART_RxISR_16BIT_FIFOEN() argument
4465 uint16_t uhMask = huart->Mask; in UART_RxISR_16BIT_FIFOEN()
4471 if (huart->RxState == HAL_UART_STATE_BUSY_RX) in UART_RxISR_16BIT_FIFOEN()
4473 for (nb_rx_data = huart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in UART_RxISR_16BIT_FIFOEN()
4475 uhdata = (uint16_t) READ_REG(huart->Instance->RDR); in UART_RxISR_16BIT_FIFOEN()
4476 tmp = (uint16_t *) huart->pRxBuffPtr ; in UART_RxISR_16BIT_FIFOEN()
4478 huart->pRxBuffPtr += 2U; in UART_RxISR_16BIT_FIFOEN()
4479 huart->RxXferCount--; in UART_RxISR_16BIT_FIFOEN()
4481 if (huart->RxXferCount == 0U) in UART_RxISR_16BIT_FIFOEN()
4484 CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); in UART_RxISR_16BIT_FIFOEN()
4487 CLEAR_BIT(huart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in UART_RxISR_16BIT_FIFOEN()
4490 huart->RxState = HAL_UART_STATE_READY; in UART_RxISR_16BIT_FIFOEN()
4493 huart->RxISR = NULL; in UART_RxISR_16BIT_FIFOEN()
4497 huart->RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4500 HAL_UART_RxCpltCallback(huart); in UART_RxISR_16BIT_FIFOEN()
4509 rxdatacount = huart->RxXferCount; in UART_RxISR_16BIT_FIFOEN()
4510 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess)) in UART_RxISR_16BIT_FIFOEN()
4513 CLEAR_BIT(huart->Instance->CR3, USART_CR3_RXFTIE); in UART_RxISR_16BIT_FIFOEN()
4516 huart->RxISR = UART_RxISR_16BIT; in UART_RxISR_16BIT_FIFOEN()
4519 SET_BIT(huart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in UART_RxISR_16BIT_FIFOEN()
4525 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); in UART_RxISR_16BIT_FIFOEN()