Lines Matching refs:husart
229 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
231 static void USART_EndTxTransfer(USART_HandleTypeDef *husart);
232 static void USART_EndRxTransfer(USART_HandleTypeDef *husart);
233 static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart);
234 static HAL_StatusTypeDef USART_EndTransmit_IT(USART_HandleTypeDef *husart);
235 static HAL_StatusTypeDef USART_Receive_IT(USART_HandleTypeDef *husart);
236 static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart);
237 static void USART_SetConfig(USART_HandleTypeDef *husart);
247 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
297 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
300 if (husart == NULL) in HAL_USART_Init()
306 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
308 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
311 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
314 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
316 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
318 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
322 husart->MspInitCallback(husart); in HAL_USART_Init()
325 HAL_USART_MspInit(husart); in HAL_USART_Init()
329 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
332 USART_SetConfig(husart); in HAL_USART_Init()
337 CLEAR_BIT(husart->Instance->CR2, USART_CR2_LINEN); in HAL_USART_Init()
338 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_USART_Init()
341 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
344 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Init()
345 husart->State = HAL_USART_STATE_READY; in HAL_USART_Init()
356 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
359 if (husart == NULL) in HAL_USART_DeInit()
365 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
367 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
370 __HAL_USART_DISABLE(husart); in HAL_USART_DeInit()
373 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
375 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
378 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
381 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
384 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
385 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
388 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
399 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
402 UNUSED(husart); in HAL_USART_MspInit()
414 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
417 UNUSED(husart); in HAL_USART_MspDeInit()
444 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
452 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
457 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
462 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
466 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
470 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
474 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
478 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
482 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
486 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
490 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
494 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
499 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
506 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
511 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
515 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
520 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
530 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
558 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
562 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_UnRegisterCallback()
567 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
571 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
575 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
579 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
583 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
587 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
591 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
595 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
599 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
604 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
611 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_UnRegisterCallback()
616 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
620 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
625 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
635 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
740 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
746 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
754 __HAL_LOCK(husart); in HAL_USART_Transmit()
756 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
757 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
762 husart->TxXferSize = Size; in HAL_USART_Transmit()
763 husart->TxXferCount = Size; in HAL_USART_Transmit()
766 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
777 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
780 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
786 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_Transmit()
791 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_Transmit()
795 husart->TxXferCount--; in HAL_USART_Transmit()
798 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
803 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
806 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
829 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
835 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
842 __HAL_LOCK(husart); in HAL_USART_Receive()
844 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
845 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
850 husart->RxXferSize = Size; in HAL_USART_Receive()
851 husart->RxXferCount = Size; in HAL_USART_Receive()
854 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
866 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
872 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
876 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
879 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
886 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_Receive()
891 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_Receive()
893 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_Receive()
897 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_Receive()
901 husart->RxXferCount--; in HAL_USART_Receive()
904 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
907 __HAL_UNLOCK(husart); in HAL_USART_Receive()
930 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
940 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
950 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
958 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
960 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
961 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
966 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
967 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
968 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
969 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
972 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
989 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
990 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
992 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
995 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1002 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1007 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_TransmitReceive()
1011 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1014 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1017 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1023 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1028 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_TransmitReceive()
1030 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_TransmitReceive()
1034 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_TransmitReceive()
1040 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1042 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1045 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1048 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1070 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1072 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1080 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1082 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1083 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1084 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1086 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1087 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1098 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1101 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_Transmit_IT()
1123 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1125 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1132 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1134 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1135 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1136 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1138 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1139 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1142 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1144 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1147 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1152 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1156 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1159 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x01FF); in HAL_USART_Receive_IT()
1181 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1184 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1191 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1193 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1194 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1195 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1196 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1197 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1198 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1200 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1201 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1204 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1207 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1209 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1212 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1216 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1219 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1240 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1244 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1251 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1253 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1254 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1255 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1257 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1258 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1261 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1264 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1267 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1270 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Transmit_DMA()
1274 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Transmit_DMA()
1277 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_Transmit_DMA()
1280 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1284 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1307 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1311 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1319 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1321 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1322 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1323 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1324 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1326 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1327 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1330 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1333 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1336 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1339 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1343 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1344 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1347 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1350 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1354 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(uint32_t *)tmp, Size); in HAL_USART_Receive_DMA()
1359 HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Receive_DMA()
1362 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Receive_DMA()
1365 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1367 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1370 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1374 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1378 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1382 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1405 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1410 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1417 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1419 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1420 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1421 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1422 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1424 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1425 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1428 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1431 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1434 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1437 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1440 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1443 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1446 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_TransmitReceive_DMA()
1450 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(const uint32_t *)tmp, Size); in HAL_USART_TransmitReceive_DMA()
1454 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_TransmitReceive_DMA()
1457 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_TransmitReceive_DMA()
1460 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_TransmitReceive_DMA()
1463 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1465 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1468 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1472 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1476 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1480 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1496 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1499 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1502 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1505 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1516 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1519 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1522 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1525 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1536 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1546 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1547 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in HAL_USART_DMAStop()
1549 USART_EndTxTransfer(husart); in HAL_USART_DMAStop()
1552 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1554 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_DMAStop()
1558 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1562 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1563 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in HAL_USART_DMAStop()
1565 USART_EndRxTransfer(husart); in HAL_USART_DMAStop()
1568 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1570 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_DMAStop()
1574 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1593 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1596 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1597 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1600 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1602 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1605 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1609 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1611 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_Abort()
1616 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1618 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1621 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1625 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1627 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Abort()
1632 husart->TxXferCount = 0x00U; in HAL_USART_Abort()
1633 husart->RxXferCount = 0x00U; in HAL_USART_Abort()
1636 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1639 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1659 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1664 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
1665 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
1670 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1674 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1676 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
1680 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1684 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1688 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1690 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
1694 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1699 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1702 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
1705 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1711 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
1713 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1723 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1725 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
1728 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1734 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
1736 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1750 husart->TxXferCount = 0x00U; in HAL_USART_Abort_IT()
1751 husart->RxXferCount = 0x00U; in HAL_USART_Abort_IT()
1754 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
1757 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
1762 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1765 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1778 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
1780 uint32_t isrflags = READ_REG(husart->Instance->SR); in HAL_USART_IRQHandler()
1781 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
1782 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
1793 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1795 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1799 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1810 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
1816 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
1822 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
1828 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
1831 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
1836 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1838 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1842 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1847 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1848 if (((husart->ErrorCode & HAL_USART_ERROR_ORE) != RESET) || dmarequest) in HAL_USART_IRQHandler()
1852 USART_EndRxTransfer(husart); in HAL_USART_IRQHandler()
1855 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
1857 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1860 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
1864 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
1866 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
1869 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
1877 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1880 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1889 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1892 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1901 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1904 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1906 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
1915 if (husart->State == HAL_USART_STATE_BUSY_TX) in HAL_USART_IRQHandler()
1917 USART_Transmit_IT(husart); in HAL_USART_IRQHandler()
1921 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1929 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
1940 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
1943 UNUSED(husart); in HAL_USART_TxCpltCallback()
1955 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
1958 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
1970 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
1973 UNUSED(husart); in HAL_USART_RxCpltCallback()
1985 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
1988 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2000 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2003 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2015 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2018 UNUSED(husart); in HAL_USART_ErrorCallback()
2029 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2032 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2068 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2070 return husart->State; in HAL_USART_GetState()
2079 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2081 return husart->ErrorCode; in HAL_USART_GetError()
2101 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2104 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2105 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2106 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2107 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2108 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2109 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2110 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2122 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATransmitCplt() local
2126 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2127 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2131 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2134 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_DMATransmitCplt()
2140 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2144 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2147 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2161 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxHalfCplt() local
2165 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2168 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2180 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAReceiveCplt() local
2184 husart->RxXferCount = 0x00U; in USART_DMAReceiveCplt()
2187 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2188 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2192 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2193 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2196 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2200 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2203 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2211 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2214 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2217 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2222 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2226 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2229 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2237 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2240 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2254 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxHalfCplt() local
2258 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2261 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2274 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAError() local
2275 husart->RxXferCount = 0x00U; in USART_DMAError()
2276 husart->TxXferCount = 0x00U; in USART_DMAError()
2279 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAError()
2280 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in USART_DMAError()
2282 USART_EndTxTransfer(husart); in USART_DMAError()
2286 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAError()
2287 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in USART_DMAError()
2289 USART_EndRxTransfer(husart); in USART_DMAError()
2292 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2293 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2297 husart->ErrorCallback(husart); in USART_DMAError()
2300 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2315 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2319 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2327 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_WaitOnFlagUntilTimeout()
2330 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_WaitOnFlagUntilTimeout()
2333 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_WaitOnFlagUntilTimeout()
2336 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_WaitOnFlagUntilTimeout()
2338 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2341 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2355 static void USART_EndTxTransfer(USART_HandleTypeDef *husart) in USART_EndTxTransfer() argument
2358 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in USART_EndTxTransfer()
2361 husart->State = HAL_USART_STATE_READY; in USART_EndTxTransfer()
2369 static void USART_EndRxTransfer(USART_HandleTypeDef *husart) in USART_EndRxTransfer() argument
2372 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_EndRxTransfer()
2373 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndRxTransfer()
2376 husart->State = HAL_USART_STATE_READY; in USART_EndRxTransfer()
2387 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAAbortOnError() local
2388 husart->RxXferCount = 0x00U; in USART_DMAAbortOnError()
2389 husart->TxXferCount = 0x00U; in USART_DMAAbortOnError()
2393 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2396 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2410 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxAbortCallback() local
2412 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2415 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2417 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2424 husart->TxXferCount = 0x00U; in USART_DMATxAbortCallback()
2425 husart->RxXferCount = 0x00U; in USART_DMATxAbortCallback()
2428 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2431 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2436 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2439 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2453 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxAbortCallback() local
2455 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2458 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2460 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2467 husart->TxXferCount = 0x00U; in USART_DMARxAbortCallback()
2468 husart->RxXferCount = 0x00U; in USART_DMARxAbortCallback()
2471 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2474 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2479 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2482 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2493 static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart) in USART_Transmit_IT() argument
2497 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_Transmit_IT()
2499 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Transmit_IT()
2501 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_Transmit_IT()
2502 husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in USART_Transmit_IT()
2503 husart->pTxBuffPtr += 2U; in USART_Transmit_IT()
2507 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_Transmit_IT()
2510 if (--husart->TxXferCount == 0U) in USART_Transmit_IT()
2513 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_Transmit_IT()
2516 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_Transmit_IT()
2532 static HAL_StatusTypeDef USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
2535 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_EndTransmit_IT()
2538 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransmit_IT()
2540 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
2544 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
2547 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
2559 static HAL_StatusTypeDef USART_Receive_IT(USART_HandleTypeDef *husart) in USART_Receive_IT() argument
2564 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_Receive_IT()
2566 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Receive_IT()
2569 pdata16bits = (uint16_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2570 *pdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_Receive_IT()
2571 husart->pRxBuffPtr += 2U; in USART_Receive_IT()
2575 pdata8bits = (uint8_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2578 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_Receive_IT()
2580 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_Receive_IT()
2584 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_Receive_IT()
2587 husart->pRxBuffPtr += 1U; in USART_Receive_IT()
2590 husart->RxXferCount--; in USART_Receive_IT()
2592 if (husart->RxXferCount == 0U) in USART_Receive_IT()
2595 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_Receive_IT()
2598 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_Receive_IT()
2601 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_Receive_IT()
2603 husart->State = HAL_USART_STATE_READY; in USART_Receive_IT()
2606 husart->RxCpltCallback(husart); in USART_Receive_IT()
2609 HAL_USART_RxCpltCallback(husart); in USART_Receive_IT()
2619 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in USART_Receive_IT()
2635 static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart) in USART_TransmitReceive_IT() argument
2640 if (husart->State == HAL_USART_STATE_BUSY_TX_RX) in USART_TransmitReceive_IT()
2642 if (husart->TxXferCount != 0x00U) in USART_TransmitReceive_IT()
2644 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXE) != RESET) in USART_TransmitReceive_IT()
2646 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2648 pdatatx16bits = (const uint16_t *) husart->pTxBuffPtr; in USART_TransmitReceive_IT()
2649 husart->Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2650 husart->pTxBuffPtr += 2U; in USART_TransmitReceive_IT()
2654 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2657 husart->TxXferCount--; in USART_TransmitReceive_IT()
2660 if (husart->TxXferCount == 0U) in USART_TransmitReceive_IT()
2662 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_TransmitReceive_IT()
2667 if (husart->RxXferCount != 0x00U) in USART_TransmitReceive_IT()
2669 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXNE) != RESET) in USART_TransmitReceive_IT()
2671 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2673 pdatarx16bits = (uint16_t *) husart->pRxBuffPtr; in USART_TransmitReceive_IT()
2674 *pdatarx16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2675 husart->pRxBuffPtr += 2U; in USART_TransmitReceive_IT()
2679 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_TransmitReceive_IT()
2681 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2685 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_TransmitReceive_IT()
2687 husart->pRxBuffPtr += 1U; in USART_TransmitReceive_IT()
2690 husart->RxXferCount--; in USART_TransmitReceive_IT()
2695 if (husart->RxXferCount == 0U) in USART_TransmitReceive_IT()
2698 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_TransmitReceive_IT()
2701 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_TransmitReceive_IT()
2704 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_TransmitReceive_IT()
2706 husart->State = HAL_USART_STATE_READY; in USART_TransmitReceive_IT()
2710 husart->TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2713 HAL_USART_TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2733 static void USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2739 assert_param(IS_USART_INSTANCE(husart->Instance)); in USART_SetConfig()
2740 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2741 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2742 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2743 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2744 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2745 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2746 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2747 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2751 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in USART_SetConfig()
2754 tmpreg = husart->Instance->CR2; in USART_SetConfig()
2762 tmpreg |= (uint32_t)(USART_CLOCK_ENABLE | husart->Init.CLKPolarity | in USART_SetConfig()
2763 husart->Init.CLKPhase | husart->Init.CLKLastBit | husart->Init.StopBits); in USART_SetConfig()
2765 WRITE_REG(husart->Instance->CR2, (uint32_t)tmpreg); in USART_SetConfig()
2768 tmpreg = husart->Instance->CR1; in USART_SetConfig()
2778 tmpreg |= (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode; in USART_SetConfig()
2781 WRITE_REG(husart->Instance->CR1, (uint32_t)tmpreg); in USART_SetConfig()
2785 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE)); in USART_SetConfig()
2788 if (husart->Instance == USART1) in USART_SetConfig()
2791 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()
2796 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()