Lines Matching refs:husart
183 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
185 static void USART_EndTransfer(USART_HandleTypeDef *husart);
202 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
204 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
205 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
206 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
207 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
208 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
209 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
210 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
211 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
212 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
213 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
214 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
284 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
287 if (husart == NULL) in HAL_USART_Init()
293 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
295 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
298 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
301 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
303 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
305 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
309 husart->MspInitCallback(husart); in HAL_USART_Init()
312 HAL_USART_MspInit(husart); in HAL_USART_Init()
316 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
319 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
322 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
331 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
332 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
335 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
338 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
346 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
349 if (husart == NULL) in HAL_USART_DeInit()
355 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
357 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
359 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
360 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
361 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
364 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
366 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
369 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
372 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
375 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
376 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
379 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
389 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
392 UNUSED(husart); in HAL_USART_MspInit()
404 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
407 UNUSED(husart); in HAL_USART_MspDeInit()
435 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
443 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
448 __HAL_LOCK(husart); in HAL_USART_RegisterCallback()
450 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
455 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
459 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
463 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
467 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
471 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
475 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
479 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
483 husart->RxFifoFullCallback = pCallback; in HAL_USART_RegisterCallback()
487 husart->TxFifoEmptyCallback = pCallback; in HAL_USART_RegisterCallback()
491 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
495 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
500 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
507 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
512 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
516 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
521 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
531 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
538 __HAL_UNLOCK(husart); in HAL_USART_RegisterCallback()
562 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
567 __HAL_LOCK(husart); in HAL_USART_UnRegisterCallback()
569 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
574 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
578 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
582 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
586 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
590 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
594 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
598 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
602 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in HAL_USART_UnRegisterCallback()
606 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in HAL_USART_UnRegisterCallback()
610 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
614 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
619 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
626 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
631 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
635 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
640 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
650 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
657 __HAL_UNLOCK(husart); in HAL_USART_UnRegisterCallback()
759 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
766 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
774 __HAL_LOCK(husart); in HAL_USART_Transmit()
776 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
777 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
782 husart->TxXferSize = Size; in HAL_USART_Transmit()
783 husart->TxXferCount = Size; in HAL_USART_Transmit()
786 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
798 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
800 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
806 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
811 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
815 husart->TxXferCount--; in HAL_USART_Transmit()
818 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
824 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
827 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
828 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
829 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
832 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
835 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
857 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
864 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
872 __HAL_LOCK(husart); in HAL_USART_Receive()
874 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
875 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
880 husart->RxXferSize = Size; in HAL_USART_Receive()
881 husart->RxXferCount = Size; in HAL_USART_Receive()
884 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
885 uhMask = husart->Mask; in HAL_USART_Receive()
888 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
900 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
902 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive()
908 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
912 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
916 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
923 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
928 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
932 husart->RxXferCount--; in HAL_USART_Receive()
937 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in HAL_USART_Receive()
939 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_Receive()
940 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Receive()
944 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
947 __HAL_UNLOCK(husart); in HAL_USART_Receive()
969 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
980 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
988 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
990 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
991 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
996 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
997 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
998 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
999 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
1002 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
1003 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1006 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1021 if ((husart->TxXferCount == 0x01U) || (husart->SlaveMode == USART_SLAVEMODE_ENABLE)) in HAL_USART_TransmitReceive()
1024 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1030 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1035 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1039 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1044 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1045 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1047 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1050 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1056 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1061 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1065 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1068 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1071 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1078 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1083 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1087 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1089 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1093 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1096 __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()
1126 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1128 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1129 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1130 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1131 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1133 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1134 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1143 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Transmit_IT()
1146 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1148 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_Transmit_IT()
1152 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_Transmit_IT()
1156 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1159 __HAL_USART_ENABLE_IT(husart, USART_IT_TXFT); in HAL_USART_Transmit_IT()
1164 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1166 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1170 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1174 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1177 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1199 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1203 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1211 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1213 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1214 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1215 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1216 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1218 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1220 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1221 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1224 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1227 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1230 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1232 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_Receive_IT()
1236 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_Receive_IT()
1240 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1243 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1245 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_IT()
1247 SET_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in HAL_USART_Receive_IT()
1252 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1254 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1258 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1262 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1265 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1267 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1271 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1275 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive_IT()
1281 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1283 for (nb_dummy_data = husart->NbRxDataToProcess ; nb_dummy_data > 0U ; nb_dummy_data--) in HAL_USART_Receive_IT()
1285 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1290 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1313 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1317 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1325 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1327 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1328 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1329 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1330 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1331 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1332 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1335 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1337 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1338 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1341 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_TransmitReceive_IT()
1344 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1346 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1347 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1351 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1352 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1356 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1359 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1361 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1364 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1368 SET_BIT(husart->Instance->CR3, (USART_CR3_TXFTIE | USART_CR3_RXFTIE)); in HAL_USART_TransmitReceive_IT()
1372 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1374 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1375 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1379 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1380 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1384 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1387 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1390 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1392 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1396 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1400 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_USART_TransmitReceive_IT()
1421 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1426 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1434 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1436 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1437 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1438 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1440 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1441 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1443 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1446 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1449 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1452 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1456 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1459 if (husart->hmdmatx != NULL) in HAL_USART_Transmit_DMA()
1462 husart->hmdmatx->XferCpltCallback = USART_MDMATransmitCplt; in HAL_USART_Transmit_DMA()
1465 husart->hmdmatx->XferErrorCallback = USART_MDMAError; in HAL_USART_Transmit_DMA()
1469 …status = HAL_MDMA_Start_IT(husart->hmdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->T… in HAL_USART_Transmit_DMA()
1476 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1479 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1483 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1490 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1493 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1496 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1520 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1526 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1534 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1536 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1537 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1538 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1539 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1541 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1542 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1544 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1547 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1550 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1553 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1556 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1559 if (husart->hmdmarx != NULL) in HAL_USART_Receive_DMA()
1562 husart->hmdmarx->XferCpltCallback = USART_MDMAReceiveCplt; in HAL_USART_Receive_DMA()
1565 husart->hmdmarx->XferErrorCallback = USART_MDMAError; in HAL_USART_Receive_DMA()
1568 …status = HAL_MDMA_Start_IT(husart->hmdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Si… in HAL_USART_Receive_DMA()
1573 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in HAL_USART_Receive_DMA()
1580 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1582 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1583 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1584 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1585 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1588 if (husart->hmdmatx != NULL) in HAL_USART_Receive_DMA()
1590 husart->hmdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1591 husart->hmdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1592 …status = HAL_MDMA_Start_IT(husart->hmdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Si… in HAL_USART_Receive_DMA()
1600 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1602 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1605 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1609 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1613 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1617 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1623 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1625 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1628 if (husart->hmdmarx != NULL) in HAL_USART_Receive_DMA()
1630 status = HAL_MDMA_Abort(husart->hmdmarx); in HAL_USART_Receive_DMA()
1638 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1641 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1644 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1667 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1673 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1681 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1683 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1684 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1685 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1686 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1688 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1689 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1691 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1694 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1697 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1700 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1703 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1706 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1709 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1713 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1719 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1728 if ((husart->hmdmarx != NULL) || (husart->hmdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1731 husart->hmdmarx->XferCpltCallback = USART_MDMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1734 husart->hmdmatx->XferCpltCallback = USART_MDMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1737 husart->hmdmatx->XferErrorCallback = USART_MDMAError; in HAL_USART_TransmitReceive_DMA()
1740 husart->hmdmarx->XferErrorCallback = USART_MDMAError; in HAL_USART_TransmitReceive_DMA()
1744 …status = HAL_MDMA_Start_IT(husart->hmdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Si… in HAL_USART_TransmitReceive_DMA()
1750 …status = HAL_MDMA_Start_IT(husart->hmdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Si… in HAL_USART_TransmitReceive_DMA()
1762 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1764 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1767 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1771 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1774 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1778 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1782 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1788 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1790 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1793 if (husart->hmdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1795 status = HAL_MDMA_Abort(husart->hmdmarx); in HAL_USART_TransmitReceive_DMA()
1803 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1806 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1809 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1825 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1827 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1830 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1832 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1836 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1841 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1844 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1846 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1849 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1850 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1853 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1862 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1872 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1874 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1877 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1882 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1888 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1891 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1893 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1895 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1898 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1901 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1909 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1919 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1929 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1930 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1933 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1935 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1937 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1940 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1947 if (husart->hmdmatx != NULL) in HAL_USART_DMAStop()
1949 if (HAL_MDMA_Abort(husart->hmdmatx) != HAL_OK) in HAL_USART_DMAStop()
1951 if (HAL_MDMA_GetError(husart->hmdmatx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1954 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1962 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1964 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1966 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1969 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1976 if (husart->hmdmarx != NULL) in HAL_USART_DMAStop()
1978 if (HAL_MDMA_Abort(husart->hmdmarx) != HAL_OK) in HAL_USART_DMAStop()
1980 if (HAL_MDMA_GetError(husart->hmdmarx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1983 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1991 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1992 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
2009 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
2012 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort()
2014 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort()
2017 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
2020 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
2023 if (husart->hdmatx != NULL) in HAL_USART_Abort()
2027 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
2029 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
2031 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2034 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2041 if (husart->hmdmatx != NULL) in HAL_USART_Abort()
2045 husart->hmdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
2047 if (HAL_MDMA_Abort(husart->hmdmatx) != HAL_OK) in HAL_USART_Abort()
2049 if (HAL_MDMA_GetError(husart->hmdmatx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2052 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2062 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
2065 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
2068 if (husart->hdmarx != NULL) in HAL_USART_Abort()
2072 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
2074 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
2076 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2079 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2086 if (husart->hmdmarx != NULL) in HAL_USART_Abort()
2090 husart->hmdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
2092 if (HAL_MDMA_Abort(husart->hmdmarx) != HAL_OK) in HAL_USART_Abort()
2094 if (HAL_MDMA_GetError(husart->hmdmarx) == HAL_MDMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2097 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2107 husart->TxXferCount = 0U; in HAL_USART_Abort()
2108 husart->RxXferCount = 0U; in HAL_USART_Abort()
2111 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
2114 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort()
2116 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2120 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2123 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
2126 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
2145 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
2150 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort_IT()
2152 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort_IT()
2157 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2161 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2163 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2167 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2174 if (husart->hmdmatx != NULL) in HAL_USART_Abort_IT()
2178 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2180 husart->hmdmatx->XferAbortCallback = USART_MDMATxAbortCallback; in HAL_USART_Abort_IT()
2184 husart->hmdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2189 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2193 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2195 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2199 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2204 if (husart->hmdmarx != NULL) in HAL_USART_Abort_IT()
2208 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2210 husart->hmdmarx->XferAbortCallback = USART_MDMARxAbortCallback; in HAL_USART_Abort_IT()
2214 husart->hmdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2220 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2223 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2226 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2232 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2234 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2243 if (husart->hmdmatx != NULL) in HAL_USART_Abort_IT()
2249 if (HAL_MDMA_Abort_IT(husart->hmdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2251 husart->hmdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2262 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2265 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2268 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2274 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2276 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2286 if (husart->hmdmarx != NULL) in HAL_USART_Abort_IT()
2292 if (HAL_MDMA_Abort_IT(husart->hmdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2294 husart->hmdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2309 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2310 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2313 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2316 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2319 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort_IT()
2321 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2325 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2328 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2333 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2336 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2348 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2350 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2351 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2352 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2367 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2369 husart->RxISR(husart); in HAL_USART_IRQHandler()
2383 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2385 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2391 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2393 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2399 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2401 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2409 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2411 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2417 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2419 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2426 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
2428 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2433 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2434 husart->ErrorCode |= HAL_USART_ERROR_UDR; in HAL_USART_IRQHandler()
2439 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2446 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2448 husart->RxISR(husart); in HAL_USART_IRQHandler()
2454 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2455 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2461 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2464 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2467 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2470 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2474 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2477 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2481 if (husart->hmdmatx != NULL) in HAL_USART_IRQHandler()
2485 husart->hmdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2488 (void)HAL_MDMA_Abort_IT(husart->hmdmatx); in HAL_USART_IRQHandler()
2493 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2497 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2500 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2503 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2508 else if (husart->hmdmarx != NULL) in HAL_USART_IRQHandler()
2512 husart->hmdmarx->XferAbortCallback = USART_MDMAAbortOnError; in HAL_USART_IRQHandler()
2515 if (HAL_MDMA_Abort_IT(husart->hmdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2518 husart->hmdmarx->XferAbortCallback(husart->hmdmarx); in HAL_USART_IRQHandler()
2527 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2530 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2539 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2542 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2552 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2555 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2557 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2570 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2572 husart->TxISR(husart); in HAL_USART_IRQHandler()
2580 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2589 husart->TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2592 HAL_USARTEx_TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2602 husart->RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2605 HAL_USARTEx_RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2616 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2619 UNUSED(husart); in HAL_USART_TxCpltCallback()
2631 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2634 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2646 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2649 UNUSED(husart); in HAL_USART_RxCpltCallback()
2661 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2664 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2676 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2679 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2691 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2694 UNUSED(husart); in HAL_USART_ErrorCallback()
2706 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2709 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2743 HAL_USART_StateTypeDef HAL_USART_GetState(USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2745 return husart->State; in HAL_USART_GetState()
2754 uint32_t HAL_USART_GetError(USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2756 return husart->ErrorCode; in HAL_USART_GetError()
2777 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2780 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2781 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2782 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2783 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2784 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2785 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2786 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2787 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in USART_InitCallbacksToDefault()
2788 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in USART_InitCallbacksToDefault()
2797 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2800 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in USART_EndTransfer()
2802 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in USART_EndTransfer()
2805 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2815 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2820 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2822 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2826 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2829 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2835 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2839 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2842 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2855 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2859 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2862 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2873 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2878 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2881 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2882 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2886 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2889 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2891 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2895 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2898 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2906 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2909 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2912 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2917 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2921 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2924 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2932 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2935 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2948 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2952 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2955 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2966 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2968 husart->RxXferCount = 0U; in USART_DMAError()
2969 husart->TxXferCount = 0U; in USART_DMAError()
2970 USART_EndTransfer(husart); in USART_DMAError()
2972 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2973 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2977 husart->ErrorCallback(husart); in USART_DMAError()
2980 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2992 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2993 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2994 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2998 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
3001 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
3015 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
3017 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
3020 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
3022 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
3029 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
3030 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
3033 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
3036 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
3039 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
3044 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
3047 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
3063 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
3065 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
3068 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
3070 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
3077 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
3078 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
3081 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
3084 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
3087 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
3092 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
3095 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
3107 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMATransmitCplt() local
3109 if (husart != NULL) in USART_MDMATransmitCplt()
3111 husart->TxXferCount = 0U; in USART_MDMATransmitCplt()
3113 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_MDMATransmitCplt()
3117 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_MDMATransmitCplt()
3120 SET_BIT(husart->Instance->CR1, USART_CR1_TCIE); in USART_MDMATransmitCplt()
3124 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_MDMATransmitCplt()
3128 husart->TxCpltCallback(husart); in USART_MDMATransmitCplt()
3130 HAL_USART_TxCpltCallback(husart); in USART_MDMATransmitCplt()
3144 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMAReceiveCplt() local
3147 if (husart != NULL) in USART_MDMAReceiveCplt()
3149 husart->RxXferCount = 0U; in USART_MDMAReceiveCplt()
3152 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_MDMAReceiveCplt()
3153 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_MDMAReceiveCplt()
3157 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_MDMAReceiveCplt()
3160 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_MDMAReceiveCplt()
3162 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_MDMAReceiveCplt()
3166 husart->RxCpltCallback(husart); in USART_MDMAReceiveCplt()
3168 HAL_USART_RxCpltCallback(husart); in USART_MDMAReceiveCplt()
3176 husart->TxRxCpltCallback(husart); in USART_MDMAReceiveCplt()
3178 HAL_USART_TxRxCpltCallback(husart); in USART_MDMAReceiveCplt()
3181 husart->State = HAL_USART_STATE_READY; in USART_MDMAReceiveCplt()
3192 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMAError() local
3194 if (husart != NULL) in USART_MDMAError()
3196 husart->RxXferCount = 0U; in USART_MDMAError()
3197 husart->TxXferCount = 0U; in USART_MDMAError()
3198 USART_EndTransfer(husart); in USART_MDMAError()
3200 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_MDMAError()
3201 husart->State = HAL_USART_STATE_READY; in USART_MDMAError()
3205 husart->ErrorCallback(husart); in USART_MDMAError()
3207 HAL_USART_ErrorCallback(husart); in USART_MDMAError()
3220 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMAAbortOnError() local
3221 husart->RxXferCount = 0U; in USART_MDMAAbortOnError()
3222 husart->TxXferCount = 0U; in USART_MDMAAbortOnError()
3226 husart->ErrorCallback(husart); in USART_MDMAAbortOnError()
3228 HAL_USART_ErrorCallback(husart); in USART_MDMAAbortOnError()
3242 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMATxAbortCallback() local
3244 husart->hmdmatx->XferAbortCallback = NULL; in USART_MDMATxAbortCallback()
3247 if (husart->hmdmarx != NULL) in USART_MDMATxAbortCallback()
3249 if (husart->hmdmarx->XferAbortCallback != NULL) in USART_MDMATxAbortCallback()
3256 husart->TxXferCount = 0U; in USART_MDMATxAbortCallback()
3257 husart->RxXferCount = 0U; in USART_MDMATxAbortCallback()
3260 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_MDMATxAbortCallback()
3263 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_MDMATxAbortCallback()
3266 husart->State = HAL_USART_STATE_READY; in USART_MDMATxAbortCallback()
3270 husart->AbortCpltCallback(husart); in USART_MDMATxAbortCallback()
3272 HAL_USART_AbortCpltCallback(husart); in USART_MDMATxAbortCallback()
3287 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hmdma->Parent); in USART_MDMARxAbortCallback() local
3289 husart->hmdmarx->XferAbortCallback = NULL; in USART_MDMARxAbortCallback()
3292 if (husart->hmdmatx != NULL) in USART_MDMARxAbortCallback()
3294 if (husart->hmdmatx->XferAbortCallback != NULL) in USART_MDMARxAbortCallback()
3301 husart->TxXferCount = 0U; in USART_MDMARxAbortCallback()
3302 husart->RxXferCount = 0U; in USART_MDMARxAbortCallback()
3305 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_MDMARxAbortCallback()
3308 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_MDMARxAbortCallback()
3311 husart->State = HAL_USART_STATE_READY; in USART_MDMARxAbortCallback()
3315 husart->AbortCpltCallback(husart); in USART_MDMARxAbortCallback()
3317 HAL_USART_AbortCpltCallback(husart); in USART_MDMARxAbortCallback()
3332 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
3336 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
3343 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
3346 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
3360 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
3372 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
3373 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
3374 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
3375 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
3376 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
3377 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
3378 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
3379 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
3380 assert_param(IS_USART_PRESCALER(husart->Init.ClockPrescaler)); in USART_SetConfig()
3389 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
3390 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
3399 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
3400 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
3401 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
3402 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
3407 MODIFY_REG(husart->Instance->PRESC, USART_PRESC_PRESCALER, husart->Init.ClockPrescaler); in USART_SetConfig()
3411 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
3417 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3421 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3425 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3429 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pll3_clocks.PLL3_Q_Frequency, husart->Init.BaudRate, in USART_SetConfig()
3430 husart->Init.ClockPrescaler)); in USART_SetConfig()
3434 … (uint32_t)(USART_DIV_SAMPLING8(pll4_clocks.PLL4_Q_Frequency, husart->Init.BaudRate, husart->Init.… in USART_SetConfig()
3437 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3440 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(CSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3443 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSE_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3455 husart->Instance->BRR = brrtemp; in USART_SetConfig()
3463 husart->NbTxDataToProcess = 1U; in USART_SetConfig()
3464 husart->NbRxDataToProcess = 1U; in USART_SetConfig()
3467 husart->RxISR = NULL; in USART_SetConfig()
3468 husart->TxISR = NULL; in USART_SetConfig()
3478 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
3483 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
3489 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
3492 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3499 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
3502 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3510 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
3513 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3528 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3530 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3536 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3539 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3542 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3546 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3547 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3548 husart->TxXferCount--; in USART_TxISR_8BIT()
3563 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3565 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3571 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3574 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3577 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3581 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3582 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3583 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3584 husart->TxXferCount--; in USART_TxISR_16BIT()
3599 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_8BIT_FIFOEN() argument
3601 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT_FIFOEN()
3608 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_8BIT_FIFOEN()
3610 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT_FIFOEN()
3613 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_8BIT_FIFOEN()
3616 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT_FIFOEN()
3620 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_8BIT_FIFOEN()
3622 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT_FIFOEN()
3623 husart->pTxBuffPtr++; in USART_TxISR_8BIT_FIFOEN()
3624 husart->TxXferCount--; in USART_TxISR_8BIT_FIFOEN()
3644 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_16BIT_FIFOEN() argument
3646 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT_FIFOEN()
3654 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_16BIT_FIFOEN()
3656 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT_FIFOEN()
3659 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_16BIT_FIFOEN()
3662 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT_FIFOEN()
3666 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_16BIT_FIFOEN()
3668 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT_FIFOEN()
3669 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT_FIFOEN()
3670 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT_FIFOEN()
3671 husart->TxXferCount--; in USART_TxISR_16BIT_FIFOEN()
3687 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3690 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3693 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3696 husart->TxISR = NULL; in USART_EndTransmit_IT()
3698 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3701 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3702 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3705 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3709 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3712 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3715 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3718 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3722 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3725 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3744 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3746 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3748 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3754 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3755 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3756 husart->RxXferCount--; in USART_RxISR_8BIT()
3758 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3761 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3764 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3767 husart->RxISR = NULL; in USART_RxISR_8BIT()
3770 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT()
3771 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3776 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT()
3778 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT()
3779 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT()
3783 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3787 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3790 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3793 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3798 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3802 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3805 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3814 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT()
3817 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3835 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3837 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3840 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3846 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3847 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3848 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3849 husart->RxXferCount--; in USART_RxISR_16BIT()
3851 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3854 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3857 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3860 husart->RxISR = NULL; in USART_RxISR_16BIT()
3863 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT()
3864 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3869 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT()
3871 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT()
3872 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT()
3876 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3880 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3883 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3886 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3891 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3895 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3898 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3907 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT()
3910 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()
3928 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_8BIT_FIFOEN() argument
3930 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT_FIFOEN()
3933 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT_FIFOEN()
3941 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_8BIT_FIFOEN()
3943 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_8BIT_FIFOEN()
3945 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in USART_RxISR_8BIT_FIFOEN()
3946 husart->pRxBuffPtr++; in USART_RxISR_8BIT_FIFOEN()
3947 husart->RxXferCount--; in USART_RxISR_8BIT_FIFOEN()
3949 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT_FIFOEN()
3952 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_8BIT_FIFOEN()
3956 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_8BIT_FIFOEN()
3959 husart->RxISR = NULL; in USART_RxISR_8BIT_FIFOEN()
3962 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT_FIFOEN()
3963 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT_FIFOEN()
3968 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT_FIFOEN()
3970 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT_FIFOEN()
3971 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3975 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3980 husart->RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3983 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3986 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT_FIFOEN()
3991 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3996 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3999 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
4008 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
4011 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
4024 rxdatacount = husart->RxXferCount; in USART_RxISR_8BIT_FIFOEN()
4025 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_8BIT_FIFOEN()
4028 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_8BIT_FIFOEN()
4031 husart->RxISR = USART_RxISR_8BIT; in USART_RxISR_8BIT_FIFOEN()
4034 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_8BIT_FIFOEN()
4036 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
4038 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
4041 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
4048 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
4061 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_16BIT_FIFOEN() argument
4063 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT_FIFOEN()
4067 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT_FIFOEN()
4075 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_16BIT_FIFOEN()
4077 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_16BIT_FIFOEN()
4079 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT_FIFOEN()
4080 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT_FIFOEN()
4081 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT_FIFOEN()
4082 husart->RxXferCount--; in USART_RxISR_16BIT_FIFOEN()
4084 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT_FIFOEN()
4087 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_16BIT_FIFOEN()
4091 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_16BIT_FIFOEN()
4094 husart->RxISR = NULL; in USART_RxISR_16BIT_FIFOEN()
4097 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT_FIFOEN()
4098 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT_FIFOEN()
4103 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT_FIFOEN()
4105 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT_FIFOEN()
4106 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()
4110 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
4115 husart->RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
4118 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
4121 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT_FIFOEN()
4126 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
4131 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
4134 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
4143 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
4146 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
4159 rxdatacount = husart->RxXferCount; in USART_RxISR_16BIT_FIFOEN()
4160 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_16BIT_FIFOEN()
4163 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_16BIT_FIFOEN()
4166 husart->RxISR = USART_RxISR_16BIT; in USART_RxISR_16BIT_FIFOEN()
4169 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_16BIT_FIFOEN()
4171 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
4173 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
4176 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
4183 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()