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…
296 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
299 if (husart == NULL) in HAL_USART_Init()
305 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
307 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
310 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
313 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
315 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
317 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
321 husart->MspInitCallback(husart); in HAL_USART_Init()
324 HAL_USART_MspInit(husart); in HAL_USART_Init()
328 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
331 USART_SetConfig(husart); in HAL_USART_Init()
336 CLEAR_BIT(husart->Instance->CR2, USART_CR2_LINEN); in HAL_USART_Init()
337 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); in HAL_USART_Init()
340 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
343 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Init()
344 husart->State = HAL_USART_STATE_READY; in HAL_USART_Init()
355 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
358 if (husart == NULL) in HAL_USART_DeInit()
364 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
366 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
369 __HAL_USART_DISABLE(husart); in HAL_USART_DeInit()
372 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
374 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
377 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
380 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
383 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
384 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
387 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
398 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
401 UNUSED(husart); in HAL_USART_MspInit()
413 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
416 UNUSED(husart); in HAL_USART_MspDeInit()
443 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
451 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
456 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
461 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
465 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
469 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
473 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
477 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
481 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
485 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
489 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
493 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
498 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
505 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
510 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
514 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
519 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
529 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
557 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
561 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_UnRegisterCallback()
566husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
570husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
574husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
578husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
582husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
586husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
590husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
594husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
598husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
603 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
610 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_UnRegisterCallback()
615 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
619 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
624 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
634 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
739 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
745 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
753 __HAL_LOCK(husart); in HAL_USART_Transmit()
755 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
756 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
761 husart->TxXferSize = Size; in HAL_USART_Transmit()
762 husart->TxXferCount = Size; in HAL_USART_Transmit()
765 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
776 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
779 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
785 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_Transmit()
790 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_Transmit()
794 husart->TxXferCount--; in HAL_USART_Transmit()
797 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
802 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
805 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
828 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
834 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
841 __HAL_LOCK(husart); in HAL_USART_Receive()
843 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
844 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
849 husart->RxXferSize = Size; in HAL_USART_Receive()
850 husart->RxXferCount = Size; in HAL_USART_Receive()
853 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
865 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
871 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
875 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
878 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
885 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_Receive()
890 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_Receive()
892 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_Receive()
896 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_Receive()
900 husart->RxXferCount--; in HAL_USART_Receive()
903 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
906 __HAL_UNLOCK(husart); in HAL_USART_Receive()
929 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
939 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
949 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
957 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
959 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
960 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
965 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
966 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
967 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
968 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
971 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
988 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
989 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
991 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
994 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1001 husart->Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1006 husart->Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF); in HAL_USART_TransmitReceive()
1010 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1013 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1016 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1022 *prxdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in HAL_USART_TransmitReceive()
1027 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in HAL_USART_TransmitReceive()
1029 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x0FF); in HAL_USART_TransmitReceive()
1033 *prxdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x07F); in HAL_USART_TransmitReceive()
1039 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1041 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1044 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1047 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1069 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1071 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1079 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1081 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1082 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1083 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1085 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1086 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1097 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1100 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_Transmit_IT()
1122 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1124 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1131 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1133 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1134 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1135 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1137 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1138 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1141 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1143 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1146 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1151 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1155 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1158 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x01FF); in HAL_USART_Receive_IT()
1180 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1183 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1190 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1192 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1193 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1194 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1195 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1196 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1197 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1199 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1200 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1203 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1206 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1208 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1211 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1215 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1218 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1239 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1243 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1250 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1252 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1253 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1254 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1256 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1257 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1260 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1263 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1266 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1269 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Transmit_DMA()
1273 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Transmit_DMA()
1276 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_Transmit_DMA()
1279 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1283 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1306 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1310 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1318 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1320 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1321 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1322 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1323 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1325 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1326 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1329 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1332 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1335 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1338 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1342 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1343 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1346 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1349 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Receive_DMA()
1353 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(uint32_t *)tmp, Size); in HAL_USART_Receive_DMA()
1358 HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_Receive_DMA()
1361 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Receive_DMA()
1364 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1366 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1369 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1373 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1377 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1381 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1404 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1409 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1416 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1418 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1419 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1420 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1421 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1423 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1424 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1427 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1430 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1433 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1436 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1439 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1442 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1445 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_TransmitReceive_DMA()
1449 HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->DR, *(const uint32_t *)tmp, Size); in HAL_USART_TransmitReceive_DMA()
1453 HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->DR, Size); in HAL_USART_TransmitReceive_DMA()
1456 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC); in HAL_USART_TransmitReceive_DMA()
1459 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_TransmitReceive_DMA()
1462 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1464 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1467 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1471 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1475 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1479 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1495 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1498 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1501 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1504 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1515 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1518 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1521 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1524 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1535 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1545 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1546 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in HAL_USART_DMAStop()
1548 USART_EndTxTransfer(husart); in HAL_USART_DMAStop()
1551 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1553 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_DMAStop()
1557 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1561 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1562 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in HAL_USART_DMAStop()
1564 USART_EndRxTransfer(husart); in HAL_USART_DMAStop()
1567 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1569 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_DMAStop()
1573 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1592 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1595 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1596 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1599 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1601 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1604 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1608 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1610 HAL_DMA_Abort(husart->hdmatx); in HAL_USART_Abort()
1615 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1617 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1620 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1624 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1626 HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Abort()
1631 husart->TxXferCount = 0x00U; in HAL_USART_Abort()
1632 husart->RxXferCount = 0x00U; in HAL_USART_Abort()
1635 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1638 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1658 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1663 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
1664 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
1669 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1673 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1675 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
1679 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1683 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1687 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1689 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
1693 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1698 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1701 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
1704 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1710 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
1712 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1722 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1724 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
1727 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1733 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
1735 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1749 husart->TxXferCount = 0x00U; in HAL_USART_Abort_IT()
1750 husart->RxXferCount = 0x00U; in HAL_USART_Abort_IT()
1753 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
1756 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
1761 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1764 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1777 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
1779 uint32_t isrflags = READ_REG(husart->Instance->SR); in HAL_USART_IRQHandler()
1780 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
1781 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
1792 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1794 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1798 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1809 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
1815 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
1821 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
1827 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
1830 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
1835 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
1837 USART_Receive_IT(husart); in HAL_USART_IRQHandler()
1841 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1846 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1847 if (((husart->ErrorCode & HAL_USART_ERROR_ORE) != RESET) || dmarequest) in HAL_USART_IRQHandler()
1851 USART_EndRxTransfer(husart); in HAL_USART_IRQHandler()
1854 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
1856 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_IRQHandler()
1859 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
1863 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
1865 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
1868 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
1876 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1879 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1888 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1891 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1900 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
1903 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
1905 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
1914 if (husart->State == HAL_USART_STATE_BUSY_TX) in HAL_USART_IRQHandler()
1916 USART_Transmit_IT(husart); in HAL_USART_IRQHandler()
1920 USART_TransmitReceive_IT(husart); in HAL_USART_IRQHandler()
1928 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
1939 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
1942 UNUSED(husart); in HAL_USART_TxCpltCallback()
1954 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
1957 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
1969 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
1972 UNUSED(husart); in HAL_USART_RxCpltCallback()
1984 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
1987 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
1999 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2002 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2014 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2017 UNUSED(husart); in HAL_USART_ErrorCallback()
2028 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2031 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2067 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2069 return husart->State; in HAL_USART_GetState()
2078 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2080 return husart->ErrorCode; in HAL_USART_GetError()
2100 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2103husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2104husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2105husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2106husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2107husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2108husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2109husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2121 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATransmitCplt() local
2125 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2126 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2130 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2133 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_DMATransmitCplt()
2139 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2143 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2146 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2160 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxHalfCplt() local
2164 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2167 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2179 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAReceiveCplt() local
2183 husart->RxXferCount = 0x00U; in USART_DMAReceiveCplt()
2186 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2187 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2191 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2192 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2195 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2199 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2202 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2210 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2213 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2216 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2221 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2225 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2228 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2236 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2239 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2253 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxHalfCplt() local
2257 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2260 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2273 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAError() local
2274 husart->RxXferCount = 0x00U; in USART_DMAError()
2275 husart->TxXferCount = 0x00U; in USART_DMAError()
2278 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAError()
2279 if ((husart->State == HAL_USART_STATE_BUSY_TX) && dmarequest) in USART_DMAError()
2281 USART_EndTxTransfer(husart); in USART_DMAError()
2285 dmarequest = HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAError()
2286 if ((husart->State == HAL_USART_STATE_BUSY_RX) && dmarequest) in USART_DMAError()
2288 USART_EndRxTransfer(husart); in USART_DMAError()
2291 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2292 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2296 husart->ErrorCallback(husart); in USART_DMAError()
2299 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2314 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2318 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2326 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_WaitOnFlagUntilTimeout()
2329 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_WaitOnFlagUntilTimeout()
2332 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_WaitOnFlagUntilTimeout()
2335 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_WaitOnFlagUntilTimeout()
2337 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2340 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2354 static void USART_EndTxTransfer(USART_HandleTypeDef *husart) in USART_EndTxTransfer() argument
2357 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); in USART_EndTxTransfer()
2360 husart->State = HAL_USART_STATE_READY; in USART_EndTxTransfer()
2368 static void USART_EndRxTransfer(USART_HandleTypeDef *husart) in USART_EndRxTransfer() argument
2371 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_EndRxTransfer()
2372 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndRxTransfer()
2375 husart->State = HAL_USART_STATE_READY; in USART_EndRxTransfer()
2386 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMAAbortOnError() local
2387 husart->RxXferCount = 0x00U; in USART_DMAAbortOnError()
2388 husart->TxXferCount = 0x00U; in USART_DMAAbortOnError()
2392 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2395 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2409 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMATxAbortCallback() local
2411 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2414 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2416 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2423 husart->TxXferCount = 0x00U; in USART_DMATxAbortCallback()
2424 husart->RxXferCount = 0x00U; in USART_DMATxAbortCallback()
2427 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2430 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2435 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2438 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2452 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in USART_DMARxAbortCallback() local
2454 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2457 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2459 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2466 husart->TxXferCount = 0x00U; in USART_DMARxAbortCallback()
2467 husart->RxXferCount = 0x00U; in USART_DMARxAbortCallback()
2470 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2473 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2478 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2481 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2492 static HAL_StatusTypeDef USART_Transmit_IT(USART_HandleTypeDef *husart) in USART_Transmit_IT() argument
2496 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_Transmit_IT()
2498 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Transmit_IT()
2500 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_Transmit_IT()
2501 husart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); in USART_Transmit_IT()
2502 husart->pTxBuffPtr += 2U; in USART_Transmit_IT()
2506 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_Transmit_IT()
2509 if (--husart->TxXferCount == 0U) in USART_Transmit_IT()
2512 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_Transmit_IT()
2515 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_Transmit_IT()
2531 static HAL_StatusTypeDef USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
2534 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_EndTransmit_IT()
2537 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransmit_IT()
2539 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
2543 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
2546 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
2558 static HAL_StatusTypeDef USART_Receive_IT(USART_HandleTypeDef *husart) in USART_Receive_IT() argument
2563 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_Receive_IT()
2565 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_Receive_IT()
2568 pdata16bits = (uint16_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2569 *pdata16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_Receive_IT()
2570 husart->pRxBuffPtr += 2U; in USART_Receive_IT()
2574 pdata8bits = (uint8_t *) husart->pRxBuffPtr; in USART_Receive_IT()
2577 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_Receive_IT()
2579 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_Receive_IT()
2583 *pdata8bits = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_Receive_IT()
2586 husart->pRxBuffPtr += 1U; in USART_Receive_IT()
2589 husart->RxXferCount--; in USART_Receive_IT()
2591 if (husart->RxXferCount == 0U) in USART_Receive_IT()
2594 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_Receive_IT()
2597 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_Receive_IT()
2600 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_Receive_IT()
2602 husart->State = HAL_USART_STATE_READY; in USART_Receive_IT()
2605 husart->RxCpltCallback(husart); in USART_Receive_IT()
2608 HAL_USART_RxCpltCallback(husart); in USART_Receive_IT()
2618 husart->Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF); in USART_Receive_IT()
2634 static HAL_StatusTypeDef USART_TransmitReceive_IT(USART_HandleTypeDef *husart) in USART_TransmitReceive_IT() argument
2639 if (husart->State == HAL_USART_STATE_BUSY_TX_RX) in USART_TransmitReceive_IT()
2641 if (husart->TxXferCount != 0x00U) in USART_TransmitReceive_IT()
2643 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXE) != RESET) in USART_TransmitReceive_IT()
2645 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2647 pdatatx16bits = (const uint16_t *) husart->pTxBuffPtr; in USART_TransmitReceive_IT()
2648 husart->Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2649 husart->pTxBuffPtr += 2U; in USART_TransmitReceive_IT()
2653 husart->Instance->DR = (uint8_t)(*husart->pTxBuffPtr++ & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2656 husart->TxXferCount--; in USART_TransmitReceive_IT()
2659 if (husart->TxXferCount == 0U) in USART_TransmitReceive_IT()
2661 CLEAR_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in USART_TransmitReceive_IT()
2666 if (husart->RxXferCount != 0x00U) in USART_TransmitReceive_IT()
2668 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXNE) != RESET) in USART_TransmitReceive_IT()
2670 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in USART_TransmitReceive_IT()
2672 pdatarx16bits = (uint16_t *) husart->pRxBuffPtr; in USART_TransmitReceive_IT()
2673 *pdatarx16bits = (uint16_t)(husart->Instance->DR & (uint16_t)0x01FF); in USART_TransmitReceive_IT()
2674 husart->pRxBuffPtr += 2U; in USART_TransmitReceive_IT()
2678 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) || ((husart->Init.WordLength == USART_WORDLEN… in USART_TransmitReceive_IT()
2680 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x00FF); in USART_TransmitReceive_IT()
2684 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->DR & (uint8_t)0x007F); in USART_TransmitReceive_IT()
2686 husart->pRxBuffPtr += 1U; in USART_TransmitReceive_IT()
2689 husart->RxXferCount--; in USART_TransmitReceive_IT()
2694 if (husart->RxXferCount == 0U) in USART_TransmitReceive_IT()
2697 CLEAR_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in USART_TransmitReceive_IT()
2700 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_TransmitReceive_IT()
2703 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_TransmitReceive_IT()
2705 husart->State = HAL_USART_STATE_READY; in USART_TransmitReceive_IT()
2709 husart->TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2712 HAL_USART_TxRxCpltCallback(husart); in USART_TransmitReceive_IT()
2732 static void USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2738 assert_param(IS_USART_INSTANCE(husart->Instance)); in USART_SetConfig()
2739 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2740 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2741 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2742 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2743 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2744 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2745 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2746 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2750 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_TE | USART_CR1_RE)); in USART_SetConfig()
2753 tmpreg = husart->Instance->CR2; in USART_SetConfig()
2761 tmpreg |= (uint32_t)(USART_CLOCK_ENABLE | husart->Init.CLKPolarity | in USART_SetConfig()
2762 husart->Init.CLKPhase | husart->Init.CLKLastBit | husart->Init.StopBits); in USART_SetConfig()
2764 WRITE_REG(husart->Instance->CR2, (uint32_t)tmpreg); in USART_SetConfig()
2767 tmpreg = husart->Instance->CR1; in USART_SetConfig()
2778 …tmpreg |= (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_… 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()