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…
300 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
303 if (husart == NULL) in HAL_USART_Init()
309 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
311 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
314 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
317 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
319 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
321 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
325 husart->MspInitCallback(husart); in HAL_USART_Init()
328 HAL_USART_MspInit(husart); in HAL_USART_Init()
332 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
335 USART_SetConfig(husart); in HAL_USART_Init()
340 CLEAR_BIT(husart->Instance->CR2, USART_CR2_LINEN); in HAL_USART_Init()
341 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_USART_Init()
344 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
347 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Init()
348 husart->State = HAL_USART_STATE_READY; in HAL_USART_Init()
359 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
362 if (husart == NULL) in HAL_USART_DeInit()
368 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
370 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
373 __HAL_USART_DISABLE(husart); in HAL_USART_DeInit()
376 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
378 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
381 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
384 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
387 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
388 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
391 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
402 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
405 UNUSED(husart); in HAL_USART_MspInit()
417 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
420 UNUSED(husart); in HAL_USART_MspDeInit()
447 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
455 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
460 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
465 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
469 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
473 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
477 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
481 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
485 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
489 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
493 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
497 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
502 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
509 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
514 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
518 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
523 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
533 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
561 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
565 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_UnRegisterCallback()
570 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
574 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
578 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
582 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
586 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
590 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
594 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
598 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
602 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
607 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
614 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_UnRegisterCallback()
619 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
623 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
628 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
638 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
743 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
749 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
757 __HAL_LOCK(husart); in HAL_USART_Transmit()
759 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
760 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
765 husart->TxXferSize = Size; in HAL_USART_Transmit()
766 husart->TxXferCount = Size; in HAL_USART_Transmit()
769 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
780 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
783 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
789 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_Transmit()
794 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_Transmit()
798 husart->TxXferCount--; in HAL_USART_Transmit()
801 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
806 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
809 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
832 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
838 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
845 __HAL_LOCK(husart); in HAL_USART_Receive()
847 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
848 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
853 husart->RxXferSize = Size; in HAL_USART_Receive()
854 husart->RxXferCount = Size; in HAL_USART_Receive()
857 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
869 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
875 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
879 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
882 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
889 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_Receive()
894 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_Receive()
896 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_Receive()
900 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_Receive()
904 husart->RxXferCount--; in HAL_USART_Receive()
907 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
910 __HAL_UNLOCK(husart); in HAL_USART_Receive()
933 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
943 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
953 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
961 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
963 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
964 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
969 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
970 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
971 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
972 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
975 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
992 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
993 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
995 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
998 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1005 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1010 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_TransmitReceive()
1014 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1017 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1020 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1026 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1031 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_TransmitReceive()
1033 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_TransmitReceive()
1037 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_TransmitReceive()
1043 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1045 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1048 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1051 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1073 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1075 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1083 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1085 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1086 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1087 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1089 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1090 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1101 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1104 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_Transmit_IT()
1126 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1128 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1135 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1137 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1138 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1139 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1141 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1142 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1145 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1147 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1150 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1155 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1159 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1162 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x01FF); in HAL_USART_Receive_IT()
1184 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1187 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1194 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1196 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1197 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1198 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1199 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1200 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1201 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1203 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1204 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1207 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1210 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1212 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1215 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1219 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1222 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1243 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1247 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1254 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1256 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1257 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1258 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1260 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1261 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1264 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1267 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1270 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1273 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Transmit_DMA()
1277 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Transmit_DMA()
1280 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_Transmit_DMA()
1283 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1287 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1310 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1314 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1322 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1324 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1325 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1326 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1327 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1329 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1330 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1333 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1336 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1339 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1342 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1346 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1347 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1350 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1353 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1357 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(uint32_t *)tmp, Size); in HAL_USART_Receive_DMA()
1362 HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Receive_DMA()
1365 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Receive_DMA()
1368 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1370 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1373 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1377 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1381 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1385 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1408 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1413 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1420 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1422 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1423 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1424 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1425 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1427 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1428 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1431 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1434 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1437 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1440 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1443 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1446 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1449 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_TransmitReceive_DMA()
1453 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(const uint32_t *)tmp, Size); in HAL_USART_TransmitReceive_DMA()
1457 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_TransmitReceive_DMA()
1460 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_TransmitReceive_DMA()
1463 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_TransmitReceive_DMA()
1466 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1468 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1471 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1475 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1479 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1483 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1499 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1502 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1505 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1508 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1519 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1522 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1525 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1528 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1539 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1549 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1550 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in HAL_USART_DMAStop()
1552 USART_EndTxTransfer(husart); in HAL_USART_DMAStop()
1555 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1557 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_DMAStop()
1561 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1565 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1566 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in HAL_USART_DMAStop()
1568 USART_EndRxTransfer(husart); in HAL_USART_DMAStop()
1571 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1573 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_DMAStop()
1577 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1596 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1599 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1600 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1603 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1605 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1608 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1612 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1614 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_Abort()
1619 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1621 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1624 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1628 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1630 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Abort()
1635 husart->TxXferCount = 0x00U; in HAL_USART_Abort()
1636 husart->RxXferCount = 0x00U; in HAL_USART_Abort()
1639 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1642 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1662 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1667 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
1668 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
1673 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1677 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1679 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
1683 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1687 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1691 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1693 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
1697 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1702 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1705 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
1708 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1714 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
1716 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1726 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1728 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
1731 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1737 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
1739 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1753 husart->TxXferCount = 0x00U; in HAL_USART_Abort_IT()
1754 husart->RxXferCount = 0x00U; in HAL_USART_Abort_IT()
1757 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
1760 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
1765 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1768 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1781 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
1783 uint32_t isrflags = READ_REG(husart->Instance->SR); in HAL_USART_IRQHandler()
1784 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
1785 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
1796 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1798 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1802 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1813 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
1819 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
1825 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
1831 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
1834 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
1839 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1841 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1845 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1850 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1851 if (((husart->ErrorCode & HAL_USART_ERROR_ORE) != RESET) || dmarequest) in HAL_USART_IRQHandler()
1855 USART_EndRxTransfer(husart); in HAL_USART_IRQHandler()
1858 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
1860 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1863 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
1867 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
1869 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
1872 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
1880 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1883 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1892 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1895 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1904 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1907 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1909 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
1918 if (husart->State == HAL_USART_STATE_BUSY_TX) in HAL_USART_IRQHandler()
1920 USART_Transmit_IT(husart); in HAL_USART_IRQHandler()
1924 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1932 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
1943 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
1946 UNUSED(husart); in HAL_USART_TxCpltCallback()
1958 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
1961 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
1973 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
1976 UNUSED(husart); in HAL_USART_RxCpltCallback()
1988 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
1991 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2003 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2006 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2018 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2021 UNUSED(husart); in HAL_USART_ErrorCallback()
2032 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2035 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2071 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2073 return husart->State; in HAL_USART_GetState()
2082 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2084 return husart->ErrorCode; in HAL_USART_GetError()
2104 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2107 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2108 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2109 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2110 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2111 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2112 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2113 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2125 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATransmitCplt() local
2129 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2130 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2134 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2137 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_DMATransmitCplt()
2143 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2147 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2150 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2164 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxHalfCplt() local
2168 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2171 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2183 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAReceiveCplt() local
2187 husart->RxXferCount = 0x00U; in USART_DMAReceiveCplt()
2190 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2191 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2195 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2196 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2199 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2203 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2206 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2214 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2217 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2220 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2225 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2229 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2232 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2240 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2243 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2257 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxHalfCplt() local
2261 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2264 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2277 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAError() local
2278 husart->RxXferCount = 0x00U; in USART_DMAError()
2279 husart->TxXferCount = 0x00U; in USART_DMAError()
2282 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAError()
2283 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in USART_DMAError()
2285 USART_EndTxTransfer(husart); in USART_DMAError()
2289 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAError()
2290 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in USART_DMAError()
2292 USART_EndRxTransfer(husart); in USART_DMAError()
2295 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2296 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2300 husart->ErrorCallback(husart); in USART_DMAError()
2303 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2318 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2322 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2330 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_WaitOnFlagUntilTimeout()
2333 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_WaitOnFlagUntilTimeout()
2336 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_WaitOnFlagUntilTimeout()
2339 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_WaitOnFlagUntilTimeout()
2341 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2344 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2358 static void USART_EndTxTransfer(USART_HandleTypeDef *husart) in USART_EndTxTransfer() argument
2361 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in USART_EndTxTransfer()
2364 husart->State = HAL_USART_STATE_READY; in USART_EndTxTransfer()
2372 static void USART_EndRxTransfer(USART_HandleTypeDef *husart) in USART_EndRxTransfer() argument
2375 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_EndRxTransfer()
2376 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndRxTransfer()
2379 husart->State = HAL_USART_STATE_READY; in USART_EndRxTransfer()
2390 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAAbortOnError() local
2391 husart->RxXferCount = 0x00U; in USART_DMAAbortOnError()
2392 husart->TxXferCount = 0x00U; in USART_DMAAbortOnError()
2396 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2399 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2413 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxAbortCallback() local
2415 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2418 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2420 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2427 husart->TxXferCount = 0x00U; in USART_DMATxAbortCallback()
2428 husart->RxXferCount = 0x00U; in USART_DMATxAbortCallback()
2431 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2434 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2439 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2442 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2456 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxAbortCallback() local
2458 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2461 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2463 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2470 husart->TxXferCount = 0x00U; in USART_DMARxAbortCallback()
2471 husart->RxXferCount = 0x00U; in USART_DMARxAbortCallback()
2474 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2477 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2482 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2485 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2496 static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart) in USART_Transmit_IT() argument
2500 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_Transmit_IT()
2502 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Transmit_IT()
2504 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_Transmit_IT()
2505 husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in USART_Transmit_IT()
2506 husart->pTxBuffPtr += 2U; in USART_Transmit_IT()
2510 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_Transmit_IT()
2513 if (--husart->TxXferCount == 0U) in USART_Transmit_IT()
2516 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_Transmit_IT()
2519 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_Transmit_IT()
2535 static HAL_StatusTypeDef USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
2538 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_EndTransmit_IT()
2541 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransmit_IT()
2543 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
2547 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
2550 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
2562 static HAL_StatusTypeDef USART_Receive_IT(USART_HandleTypeDef *husart) in USART_Receive_IT() argument
2567 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_Receive_IT()
2569 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Receive_IT()
2572 pdata16bits = (uint16_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2573 *pdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_Receive_IT()
2574 husart->pRxBuffPtr += 2U; in USART_Receive_IT()
2578 pdata8bits = (uint8_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2581 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_Receive_IT()
2583 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_Receive_IT()
2587 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_Receive_IT()
2590 husart->pRxBuffPtr += 1U; in USART_Receive_IT()
2593 husart->RxXferCount--; in USART_Receive_IT()
2595 if (husart->RxXferCount == 0U) in USART_Receive_IT()
2598 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_Receive_IT()
2601 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_Receive_IT()
2604 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_Receive_IT()
2606 husart->State = HAL_USART_STATE_READY; in USART_Receive_IT()
2609 husart->RxCpltCallback(husart); in USART_Receive_IT()
2612 HAL_USART_RxCpltCallback(husart); in USART_Receive_IT()
2622 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in USART_Receive_IT()
2638 static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart) in USART_TransmitReceive_IT() argument
2643 if (husart->State == HAL_USART_STATE_BUSY_TX_RX) in USART_TransmitReceive_IT()
2645 if (husart->TxXferCount != 0x00U) in USART_TransmitReceive_IT()
2647 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXE) != RESET) in USART_TransmitReceive_IT()
2649 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2651 pdatatx16bits = (const uint16_t *) husart->pTxBuffPtr; in USART_TransmitReceive_IT()
2652 husart->Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2653 husart->pTxBuffPtr += 2U; in USART_TransmitReceive_IT()
2657 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2660 husart->TxXferCount--; in USART_TransmitReceive_IT()
2663 if (husart->TxXferCount == 0U) in USART_TransmitReceive_IT()
2665 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_TransmitReceive_IT()
2670 if (husart->RxXferCount != 0x00U) in USART_TransmitReceive_IT()
2672 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXNE) != RESET) in USART_TransmitReceive_IT()
2674 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2676 pdatarx16bits = (uint16_t *) husart->pRxBuffPtr; in USART_TransmitReceive_IT()
2677 *pdatarx16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2678 husart->pRxBuffPtr += 2U; in USART_TransmitReceive_IT()
2682 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_TransmitReceive_IT()
2684 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2688 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_TransmitReceive_IT()
2690 husart->pRxBuffPtr += 1U; in USART_TransmitReceive_IT()
2693 husart->RxXferCount--; in USART_TransmitReceive_IT()
2698 if (husart->RxXferCount == 0U) in USART_TransmitReceive_IT()
2701 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_TransmitReceive_IT()
2704 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_TransmitReceive_IT()
2707 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_TransmitReceive_IT()
2709 husart->State = HAL_USART_STATE_READY; in USART_TransmitReceive_IT()
2713 husart->TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2716 HAL_USART_TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2736 static void USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2742 assert_param(IS_USART_INSTANCE(husart->Instance)); in USART_SetConfig()
2743 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2744 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2745 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2746 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2747 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2748 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2749 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2750 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2754 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in USART_SetConfig()
2757 tmpreg = husart->Instance->CR2; in USART_SetConfig()
2765 tmpreg |= (uint32_t)(USART_CLOCK_ENABLE | husart->Init.CLKPolarity | in USART_SetConfig()
2766 husart->Init.CLKPhase | husart->Init.CLKLastBit | husart->Init.StopBits); in USART_SetConfig()
2768 WRITE_REG(husart->Instance->CR2, (uint32_t)tmpreg); in USART_SetConfig()
2771 tmpreg = husart->Instance->CR1; in USART_SetConfig()
2782 …tmpreg |= (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_… in USART_SetConfig()
2785 WRITE_REG(husart->Instance->CR1, (uint32_t)tmpreg); in USART_SetConfig()
2789 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE)); in USART_SetConfig()
2793 …if ((husart->Instance == USART1) || (husart->Instance == USART6) || (husart->Instance == UART9) ||… in USART_SetConfig()
2796 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()
2799 if((husart->Instance == USART1) || (husart->Instance == USART6)) in USART_SetConfig()
2802 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()
2805 if(husart->Instance == USART1) in USART_SetConfig()
2808 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()
2814 husart->Instance->BRR = USART_BRR(pclk, husart->Init.BaudRate); in USART_SetConfig()