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);
274 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
277 if (husart == NULL) in HAL_USART_Init()
283 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
285 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
288 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
291 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
293 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
295 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
299 husart->MspInitCallback(husart); in HAL_USART_Init()
302 HAL_USART_MspInit(husart); in HAL_USART_Init()
306 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
309 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
312 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
322 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
326 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
328 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL); in HAL_USART_Init()
332 husart->Instance->CR3 &= ~(USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
334 husart->Instance->CR3 &= ~(USART_CR3_HDSEL); in HAL_USART_Init()
339 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
342 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
350 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
353 if (husart == NULL) in HAL_USART_DeInit()
359 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
361 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
363 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
364 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
365 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
368 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
370 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
373 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
376 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
379 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
380 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
383 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
393 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
396 UNUSED(husart); in HAL_USART_MspInit()
408 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
411 UNUSED(husart); in HAL_USART_MspDeInit()
439 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
447 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
452 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
457 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
461 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
465 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
469 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
473 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
477 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
481 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
486 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
490 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
495 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
502 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
507 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
511 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
516 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
526 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
554 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
558 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
563 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
567 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
571 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
575 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
579 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
583 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
587 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
592 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
596 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
601 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
608 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
613 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
617 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
622 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
632 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
743 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
750 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
760 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
769 __HAL_LOCK(husart); in HAL_USART_Transmit()
771 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
772 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
777 husart->TxXferSize = Size; in HAL_USART_Transmit()
778 husart->TxXferCount = Size; in HAL_USART_Transmit()
781 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
793 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
795 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
801 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
806 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
810 husart->TxXferCount--; in HAL_USART_Transmit()
813 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
819 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
822 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
823 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
825 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
829 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
832 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
859 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
866 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
876 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
885 __HAL_LOCK(husart); in HAL_USART_Receive()
887 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
888 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
893 husart->RxXferSize = Size; in HAL_USART_Receive()
894 husart->RxXferCount = Size; in HAL_USART_Receive()
897 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
898 uhMask = husart->Mask; in HAL_USART_Receive()
901 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
913 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
920 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
924 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
928 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
935 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
940 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
944 husart->RxXferCount--; in HAL_USART_Receive()
950 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
953 __HAL_UNLOCK(husart); in HAL_USART_Receive()
980 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
991 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
1001 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1010 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
1012 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
1013 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
1018 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
1019 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
1020 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
1021 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
1024 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
1025 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1028 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1043 if (husart->TxXferCount == 0x01U) in HAL_USART_TransmitReceive()
1046 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1052 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1057 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1061 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1066 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1067 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1069 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1072 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1078 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1083 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1087 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1090 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1093 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1100 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1105 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1109 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1111 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1115 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1118 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1143 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1145 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1155 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1164 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1166 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1167 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1168 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1169 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1171 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1172 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1182 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1184 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1188 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1192 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1195 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1222 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1225 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1235 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1244 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1246 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1247 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1248 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1249 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1251 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1253 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1254 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1257 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1261 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1263 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1267 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1271 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1274 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1276 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1280 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1288 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1316 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1320 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1330 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1339 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1341 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1342 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1343 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1344 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1345 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1346 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1349 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1351 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1352 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1355 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1357 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1358 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1362 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1363 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1367 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1370 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1373 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1375 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1379 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1383 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1409 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1414 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1424 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_DMA()
1433 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1435 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1436 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1437 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1439 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1440 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1442 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1445 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1448 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1451 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1455 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1461 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1464 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1468 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1475 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1478 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1481 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1510 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1516 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1526 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_DMA()
1535 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1537 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1538 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1539 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1540 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1542 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1543 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1545 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1548 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1551 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1554 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1557 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1566 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1568 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1569 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1570 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1571 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1578 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1580 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1583 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1587 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1591 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1595 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1601 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1603 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1610 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1613 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1616 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1644 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1650 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1660 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_DMA()
1669 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1671 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1672 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1673 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1674 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1676 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1677 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1679 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1682 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1685 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1688 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1691 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1694 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1697 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1701 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1707 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1718 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1720 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1723 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1727 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1730 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1734 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1738 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1744 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1746 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1753 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1756 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1759 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1775 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1777 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1780 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1782 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1786 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1791 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1794 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1796 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1799 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1800 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1803 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1812 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1822 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1824 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1827 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1832 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1838 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1841 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1843 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1845 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1848 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1851 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1859 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1869 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1879 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1880 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1883 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1885 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1887 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1890 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1897 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1899 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1901 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1904 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1911 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1912 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
1929 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1931 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1932 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1935 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1938 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1941 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1945 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1947 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
1949 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1952 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1961 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1964 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1967 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1971 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1973 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
1975 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1978 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1987 husart->TxXferCount = 0U; in HAL_USART_Abort()
1988 husart->RxXferCount = 0U; in HAL_USART_Abort()
1991 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
1995 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
1998 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
2001 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
2020 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
2024 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
2025 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
2030 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2034 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2036 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2040 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2044 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2048 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2050 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2054 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2059 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2062 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2065 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2071 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2073 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2083 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2086 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2089 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2095 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2097 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2111 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2112 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2115 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2118 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2122 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2125 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2130 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2133 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2145 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2147 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2148 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2149 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2162 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2164 husart->RxISR(husart); in HAL_USART_IRQHandler()
2178 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2180 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2186 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2188 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2194 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2196 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2204 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2206 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2212 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2214 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2219 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2225 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2227 husart->RxISR(husart); in HAL_USART_IRQHandler()
2233 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2234 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2240 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2243 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2246 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2249 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2253 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2256 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2260 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2264 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2267 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2270 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2278 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2281 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2290 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2293 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2303 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2306 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2308 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2320 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2322 husart->TxISR(husart); in HAL_USART_IRQHandler()
2330 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2341 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2344 UNUSED(husart); in HAL_USART_TxCpltCallback()
2356 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2359 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2371 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2374 UNUSED(husart); in HAL_USART_RxCpltCallback()
2386 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2389 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2401 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2404 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2416 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2419 UNUSED(husart); in HAL_USART_ErrorCallback()
2431 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2434 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2468 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2470 return husart->State; in HAL_USART_GetState()
2479 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2481 return husart->ErrorCode; in HAL_USART_GetError()
2502 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2505 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2506 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2507 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2508 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2509 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2510 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2511 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2520 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2523 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in USART_EndTransfer()
2524 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransfer()
2527 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2537 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2542 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2544 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2548 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2551 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2557 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2561 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2564 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2577 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2581 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2584 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2595 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2600 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2603 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2604 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2608 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2611 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2613 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2617 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2620 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2628 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2631 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2634 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2639 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2643 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2646 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2654 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2657 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2670 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2674 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2677 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2688 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2690 husart->RxXferCount = 0U; in USART_DMAError()
2691 husart->TxXferCount = 0U; in USART_DMAError()
2692 USART_EndTransfer(husart); in USART_DMAError()
2694 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2695 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2699 husart->ErrorCallback(husart); in USART_DMAError()
2702 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2714 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2715 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2716 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2720 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2723 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2737 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2739 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2742 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2744 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2751 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2752 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2755 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2758 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2761 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2766 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2769 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2785 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2787 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2790 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2792 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2799 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2800 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2803 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2806 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2809 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2814 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2817 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2832 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2836 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2843 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2846 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2860 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2870 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2871 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2872 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2873 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2874 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2875 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2876 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2877 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2886 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
2887 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
2896 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
2897 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
2898 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
2899 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
2904 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
2910 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2913 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2917 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2920 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2932 husart->Instance->BRR = brrtemp; in USART_SetConfig()
2941 husart->RxISR = NULL; in USART_SetConfig()
2942 husart->TxISR = NULL; in USART_SetConfig()
2952 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
2957 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
2963 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
2966 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2973 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
2976 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2984 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
2987 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3001 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3003 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3009 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3012 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3015 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3019 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3020 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3021 husart->TxXferCount--; in USART_TxISR_8BIT()
3035 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3037 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3043 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3046 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3049 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3053 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3054 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3055 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3056 husart->TxXferCount--; in USART_TxISR_16BIT()
3068 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3071 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3074 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3077 husart->TxISR = NULL; in USART_EndTransmit_IT()
3079 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3082 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3083 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3086 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3090 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3093 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3096 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3099 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3103 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3106 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3124 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3126 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3128 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3133 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3134 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3135 husart->RxXferCount--; in USART_RxISR_8BIT()
3137 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3140 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3143 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3146 husart->RxISR = NULL; in USART_RxISR_8BIT()
3149 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3155 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3159 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3162 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3165 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3169 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3173 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3176 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3187 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3204 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3206 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3209 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3214 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3215 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3216 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3217 husart->RxXferCount--; in USART_RxISR_16BIT()
3219 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3222 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3225 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3228 husart->RxISR = NULL; in USART_RxISR_16BIT()
3231 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3237 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3241 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3244 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3247 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3251 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3255 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3258 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3269 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()