Lines Matching refs:husart
174 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
176 static void USART_EndTransfer(USART_HandleTypeDef *husart);
185 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
187 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
188 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
189 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
190 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
191 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
192 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
193 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
263 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
266 if (husart == NULL) in HAL_USART_Init()
272 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
274 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
277 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
280 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
282 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
284 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
288 husart->MspInitCallback(husart); in HAL_USART_Init()
291 HAL_USART_MspInit(husart); in HAL_USART_Init()
295 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
298 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
301 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
310 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
311 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
314 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
317 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
325 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
328 if (husart == NULL) in HAL_USART_DeInit()
334 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
336 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
338 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
339 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
340 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
343 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
345 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
348 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
351 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
354 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
355 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
358 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
368 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
371 UNUSED(husart); in HAL_USART_MspInit()
383 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
386 UNUSED(husart); in HAL_USART_MspDeInit()
414 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
422 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
427 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
432 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
436 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
440 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
444 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
448 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
452 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
456 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
461 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
465 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
470 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
477 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
482 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
486 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
491 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
501 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
529 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
533 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
538 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
542 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
546 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
550 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
554 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
558 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
562 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
567 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
571 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
576 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
583 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
588 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
592 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
597 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
607 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
718 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
725 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
735 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
744 __HAL_LOCK(husart); in HAL_USART_Transmit()
746 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
747 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
752 husart->TxXferSize = Size; in HAL_USART_Transmit()
753 husart->TxXferCount = Size; in HAL_USART_Transmit()
756 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
768 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
770 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
776 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
781 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
785 husart->TxXferCount--; in HAL_USART_Transmit()
788 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
794 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
797 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
798 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
799 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
802 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
805 __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
839 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
849 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
858 __HAL_LOCK(husart); in HAL_USART_Receive()
860 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
861 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
866 husart->RxXferSize = Size; in HAL_USART_Receive()
867 husart->RxXferCount = Size; in HAL_USART_Receive()
870 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
871 uhMask = husart->Mask; in HAL_USART_Receive()
874 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
886 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
893 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
897 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
901 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
908 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
913 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
917 husart->RxXferCount--; in HAL_USART_Receive()
923 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
926 __HAL_UNLOCK(husart); in HAL_USART_Receive()
953 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
964 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
974 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
983 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
985 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
986 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
991 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
992 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
993 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
994 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
997 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
998 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1001 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1016 if (husart->TxXferCount == 0x01U) in HAL_USART_TransmitReceive()
1019 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1025 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1030 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1034 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1039 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1040 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1042 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1045 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1051 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1056 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1060 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1063 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1066 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1073 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1078 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1082 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1084 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1088 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1091 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1116 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1118 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1128 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1137 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1139 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1140 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1141 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1142 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1144 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1145 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1155 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1157 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1161 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1165 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1168 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1195 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1198 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1208 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1217 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1219 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1220 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1221 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1222 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1224 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1226 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1227 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1230 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1234 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1236 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1240 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1244 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1247 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1249 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1253 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1261 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1289 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1293 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1303 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1312 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1314 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1315 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1316 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1317 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1318 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1319 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1322 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1324 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1325 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1328 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1330 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1331 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1335 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1336 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1340 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1343 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1346 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1348 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1352 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1356 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1382 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1387 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1397 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_DMA()
1406 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1408 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1409 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1410 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1412 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1413 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1415 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1418 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1421 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1424 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1428 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1434 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1437 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1441 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1448 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1451 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1454 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1483 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1489 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1499 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_DMA()
1508 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1510 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1511 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1512 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1513 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1515 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1516 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1518 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1521 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1524 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1527 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1530 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1539 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1541 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1542 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1543 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1544 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1551 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1553 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1556 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1560 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1564 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1568 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1574 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1576 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1583 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1586 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1589 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1617 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1623 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1633 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_DMA()
1642 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1644 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1645 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1646 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1647 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1649 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1650 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1652 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1655 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1658 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1661 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1664 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1667 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1670 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1674 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1680 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1691 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1693 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1696 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1700 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1703 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1707 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1711 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1717 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1719 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1726 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1729 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1732 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1748 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1750 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1753 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1755 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1759 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1764 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1767 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1769 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1772 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1773 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1776 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1785 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1795 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1797 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1800 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1805 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1811 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1814 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1816 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1818 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1821 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1824 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1832 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1842 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1852 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1853 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1856 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1858 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1860 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1863 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1870 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1872 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1874 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1877 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1884 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1885 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
1902 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1904 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1905 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1908 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1911 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1914 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1918 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1920 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
1922 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1925 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1934 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1937 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1940 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1944 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1946 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
1948 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1951 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1960 husart->TxXferCount = 0U; in HAL_USART_Abort()
1961 husart->RxXferCount = 0U; in HAL_USART_Abort()
1964 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
1968 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
1971 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1974 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1993 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1997 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
1998 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
2003 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2007 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2009 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2013 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2017 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2021 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2023 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2027 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2032 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2035 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2038 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2044 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2046 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2056 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2059 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2062 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2068 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2070 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2084 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2085 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2088 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2091 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2095 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2098 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2103 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2106 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2118 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2120 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2121 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2122 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2135 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2137 husart->RxISR(husart); in HAL_USART_IRQHandler()
2151 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2153 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2159 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2161 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2167 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2169 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2177 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2179 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2185 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2187 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2192 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2198 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2200 husart->RxISR(husart); in HAL_USART_IRQHandler()
2206 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2207 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2213 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2216 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2219 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2222 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2226 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2229 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2233 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2237 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2240 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2243 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2251 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2254 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2263 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2266 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2276 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2279 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2281 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2293 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2295 husart->TxISR(husart); in HAL_USART_IRQHandler()
2303 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2314 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2317 UNUSED(husart); in HAL_USART_TxCpltCallback()
2329 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2332 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2344 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2347 UNUSED(husart); in HAL_USART_RxCpltCallback()
2359 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2362 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2374 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2377 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2389 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2392 UNUSED(husart); in HAL_USART_ErrorCallback()
2404 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2407 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2441 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2443 return husart->State; in HAL_USART_GetState()
2452 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2454 return husart->ErrorCode; in HAL_USART_GetError()
2475 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2478 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2479 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2480 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2481 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2482 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2483 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2484 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2493 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2496 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in USART_EndTransfer()
2497 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransfer()
2500 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2510 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2515 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2517 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2521 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2524 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2530 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2534 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2537 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2550 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2554 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2557 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2568 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2573 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2576 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2577 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2581 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2584 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2586 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2590 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2593 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2601 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2604 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2607 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2612 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2616 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2619 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2627 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2630 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2643 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2647 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2650 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2661 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2663 husart->RxXferCount = 0U; in USART_DMAError()
2664 husart->TxXferCount = 0U; in USART_DMAError()
2665 USART_EndTransfer(husart); in USART_DMAError()
2667 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2668 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2672 husart->ErrorCallback(husart); in USART_DMAError()
2675 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2687 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2688 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2689 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2693 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2696 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2710 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2712 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2715 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2717 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2724 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2725 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2728 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2731 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2734 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2739 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2742 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2758 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2760 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2763 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2765 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2772 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2773 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2776 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2779 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2782 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2787 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2790 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2805 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2809 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2816 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2819 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2833 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2843 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2844 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2845 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2846 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2847 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2848 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2849 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2850 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2859 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
2860 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
2869 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
2870 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
2871 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
2872 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
2877 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
2883 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2887 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2892 usartdiv = (uint32_t)(USART_DIV_SAMPLING8((HSI_VALUE >> 2U), husart->Init.BaudRate)); in USART_SetConfig()
2896 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2901 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2904 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2916 husart->Instance->BRR = brrtemp; in USART_SetConfig()
2925 husart->RxISR = NULL; in USART_SetConfig()
2926 husart->TxISR = NULL; in USART_SetConfig()
2936 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
2941 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
2947 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
2950 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2957 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
2960 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2968 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
2971 __HAL_UNLOCK(husart); in USART_CheckIdleState()
2985 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
2987 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
2993 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
2996 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
2999 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3003 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3004 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3005 husart->TxXferCount--; in USART_TxISR_8BIT()
3019 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3021 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3027 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3030 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3033 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3037 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3038 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3039 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3040 husart->TxXferCount--; in USART_TxISR_16BIT()
3052 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3055 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3058 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3061 husart->TxISR = NULL; in USART_EndTransmit_IT()
3063 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3066 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3067 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3070 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3074 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3077 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3080 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3083 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3087 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3090 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3108 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3110 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3112 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3117 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3118 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3119 husart->RxXferCount--; in USART_RxISR_8BIT()
3121 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3124 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3127 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3130 husart->RxISR = NULL; in USART_RxISR_8BIT()
3133 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3139 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3143 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3146 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3149 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3153 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3157 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3160 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3171 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3188 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3190 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3193 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3198 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3199 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3200 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3201 husart->RxXferCount--; in USART_RxISR_16BIT()
3203 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3206 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3209 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3212 husart->RxISR = NULL; in USART_RxISR_16BIT()
3215 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3221 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3225 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3228 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3231 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3235 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3239 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3242 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3253 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()