Lines Matching refs:husart

183 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
185 static void USART_EndTransfer(USART_HandleTypeDef *husart);
196 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
198 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
199 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
200 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
201 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
202 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
203 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
204 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
205 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
206 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
207 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
208 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
278 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
281 if (husart == NULL) in HAL_USART_Init()
287 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
289 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
292 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
295 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
297 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
299 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
303 husart->MspInitCallback(husart); in HAL_USART_Init()
306 HAL_USART_MspInit(husart); in HAL_USART_Init()
310 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
313 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
316 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
325 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()
329 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
332 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
340 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
343 if (husart == NULL) in HAL_USART_DeInit()
349 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
351 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
353 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
354 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
355 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
358 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
360 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
363 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
366 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
369 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
370 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
373 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
383 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
386 UNUSED(husart); in HAL_USART_MspInit()
398 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
401 UNUSED(husart); in HAL_USART_MspDeInit()
431 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
439 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
444 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
449 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
453 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
457 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
461 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
465 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
469 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
473 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
477 husart->RxFifoFullCallback = pCallback; in HAL_USART_RegisterCallback()
481 husart->TxFifoEmptyCallback = pCallback; in HAL_USART_RegisterCallback()
485 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
489 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
494 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
501 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
506 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
510 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
515 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
525 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
555 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
559 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
564husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
568husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
572husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
576husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
580husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
584husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
588husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
592husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in HAL_USART_UnRegisterCallback()
596husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in HAL_USART_UnRegisterCallback()
600husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
604husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
609 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
616 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
621 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
625 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
630 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
640 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
745 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
752 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
760 __HAL_LOCK(husart); in HAL_USART_Transmit()
764 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Transmit()
766 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit()
770 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
771 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
776 husart->TxXferSize = Size; in HAL_USART_Transmit()
777 husart->TxXferCount = Size; in HAL_USART_Transmit()
780 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
792 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
794 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
800 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
805 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
809 husart->TxXferCount--; in HAL_USART_Transmit()
812 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
818 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
821 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
822 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
823 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
826 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
829 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
851 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
858 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
866 __HAL_LOCK(husart); in HAL_USART_Receive()
870 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Receive()
872 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive()
876 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
877 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
882 husart->RxXferSize = Size; in HAL_USART_Receive()
883 husart->RxXferCount = Size; in HAL_USART_Receive()
886 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
887 uhMask = husart->Mask; in HAL_USART_Receive()
890 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
902 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
904 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive()
910 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
914 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
918 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
925 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
930 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
934 husart->RxXferCount--; in HAL_USART_Receive()
939 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in HAL_USART_Receive()
941 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_Receive()
942 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Receive()
946 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
949 __HAL_UNLOCK(husart); in HAL_USART_Receive()
971 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
982 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
990 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
994 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_TransmitReceive()
996 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive()
1000 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_TransmitReceive()
1002 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive()
1006 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
1007 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
1012 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
1013 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
1014 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
1015 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
1018 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
1019 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1022 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1037 if ((husart->TxXferCount == 0x01U) || (husart->SlaveMode == USART_SLAVEMODE_ENABLE)) in HAL_USART_TransmitReceive()
1040 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1046 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1051 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1055 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1060 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1061 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1063 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1066 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1072 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1077 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1081 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1084 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1087 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1094 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1099 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1103 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1105 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1109 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1112 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1132 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1134 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1142 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1146 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Transmit_IT()
1148 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_IT()
1152 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1153 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1154 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1155 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1157 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1158 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1167 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Transmit_IT()
1170 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1172 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_Transmit_IT()
1176 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_Transmit_IT()
1180 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1183 __HAL_USART_ENABLE_IT(husart, USART_IT_TXFT); in HAL_USART_Transmit_IT()
1188 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1190 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1194 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1198 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1201 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1223 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1227 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1235 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1239 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Receive_IT()
1241 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_IT()
1245 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1246 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1247 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1248 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1250 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1252 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1253 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1256 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1259 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1262 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1264 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_Receive_IT()
1268 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_Receive_IT()
1272 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1275 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1277 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_IT()
1279 SET_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in HAL_USART_Receive_IT()
1284 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1286 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1290 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1294 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1297 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1299 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1303 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1307 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive_IT()
1313 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1315 for (nb_dummy_data = husart->NbRxDataToProcess ; nb_dummy_data > 0U ; nb_dummy_data--) in HAL_USART_Receive_IT()
1317 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1322 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1345 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1349 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1357 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1361 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_TransmitReceive_IT()
1363 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_IT()
1367 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_TransmitReceive_IT()
1369 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_IT()
1373 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1374 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1375 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1376 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1377 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1378 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1381 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1383 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1384 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1387 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_TransmitReceive_IT()
1390 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1392 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1393 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1397 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1398 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1402 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1405 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1407 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1410 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1414 SET_BIT(husart->Instance->CR3, (USART_CR3_TXFTIE | USART_CR3_RXFTIE)); in HAL_USART_TransmitReceive_IT()
1418 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1420 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1421 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1425 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1426 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1430 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1433 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1436 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1438 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1442 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1446 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_USART_TransmitReceive_IT()
1468 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1474 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1482 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1484 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1485 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1486 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1488 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1489 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1491 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1494 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1497 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1500 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1504 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_DMA()
1512 if ((husart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_USART_Transmit_DMA()
1514 … if ((husart->hdmatx->LinkedListQueue != NULL) && (husart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_USART_Transmit_DMA()
1517 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_USART_Transmit_DMA()
1520husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = *(const uint32_t … in HAL_USART_Transmit_DMA()
1523 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_USART_Transmit_DMA()
1524 (uint32_t)&husart->Instance->TDR; in HAL_USART_Transmit_DMA()
1527 status = HAL_DMAEx_List_Start_IT(husart->hdmatx); in HAL_USART_Transmit_DMA()
1538 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1545 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1548 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1552 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1559 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1562 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1565 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1589 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1596 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1604 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1606 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1607 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1608 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1609 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1611 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1612 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1614 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1617 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1620 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1623 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1627 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_DMA()
1633 if ((husart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_USART_Receive_DMA()
1635 … if ((husart->hdmarx->LinkedListQueue != NULL) && (husart->hdmarx->LinkedListQueue->Head != NULL)) in HAL_USART_Receive_DMA()
1638 husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_USART_Receive_DMA()
1641 husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_USART_Receive_DMA()
1642 (uint32_t)&husart->Instance->RDR; in HAL_USART_Receive_DMA()
1645husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = *(uint32_t *)tmp; in HAL_USART_Receive_DMA()
1648 status = HAL_DMAEx_List_Start_IT(husart->hdmarx); in HAL_USART_Receive_DMA()
1659 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, nbBy… in HAL_USART_Receive_DMA()
1664 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in HAL_USART_Receive_DMA()
1671 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1673 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1674 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1675 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1678 if ((husart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_USART_Receive_DMA()
1680 … if ((husart->hdmatx->LinkedListQueue != NULL) && (husart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_USART_Receive_DMA()
1683 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_USART_Receive_DMA()
1686husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = *(uint32_t *)tmp; in HAL_USART_Receive_DMA()
1689 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_USART_Receive_DMA()
1690 (uint32_t)&husart->Instance->TDR; in HAL_USART_Receive_DMA()
1693 status = HAL_DMAEx_List_Start_IT(husart->hdmatx); in HAL_USART_Receive_DMA()
1703 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, nbBy… in HAL_USART_Receive_DMA()
1711 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1713 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1716 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1720 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1724 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1728 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1734 if ((husart->hdmarx != NULL) && ((husart->hdmarx->Mode & DMA_LINKEDLIST) != DMA_LINKEDLIST)) in HAL_USART_Receive_DMA()
1736 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1743 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1746 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1749 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1772 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1779 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1787 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1789 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1790 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1791 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1792 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1794 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1795 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1797 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1800 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1803 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1806 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1809 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1812 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1815 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1819 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_DMA()
1826 if ((husart->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_USART_TransmitReceive_DMA()
1828 … if ((husart->hdmarx->LinkedListQueue != NULL) && (husart->hdmarx->LinkedListQueue->Head != NULL)) in HAL_USART_TransmitReceive_DMA()
1831 husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_USART_TransmitReceive_DMA()
1834 husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_USART_TransmitReceive_DMA()
1835 (uint32_t)&husart->Instance->RDR; in HAL_USART_TransmitReceive_DMA()
1838husart->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = *(const uint32_t … in HAL_USART_TransmitReceive_DMA()
1841 status = HAL_DMAEx_List_Start_IT(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1852 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1861 if ((husart->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_USART_TransmitReceive_DMA()
1863 … if ((husart->hdmatx->LinkedListQueue != NULL) && (husart->hdmatx->LinkedListQueue->Head != NULL)) in HAL_USART_TransmitReceive_DMA()
1866 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = nbByte; in HAL_USART_TransmitReceive_DMA()
1869husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = *(const uint32_t … in HAL_USART_TransmitReceive_DMA()
1872 husart->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_USART_TransmitReceive_DMA()
1873 (uint32_t)&husart->Instance->TDR; in HAL_USART_TransmitReceive_DMA()
1876 status = HAL_DMAEx_List_Start_IT(husart->hdmatx); in HAL_USART_TransmitReceive_DMA()
1886 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1898 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1900 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1903 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1907 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1910 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1914 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1918 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1924 if ((husart->hdmarx != NULL) && ((husart->hdmarx->Mode & DMA_LINKEDLIST) != DMA_LINKEDLIST)) in HAL_USART_TransmitReceive_DMA()
1926 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1933 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1936 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1939 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1955 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1957 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1960 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1962 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1966 if (husart->hdmatx != NULL) in HAL_USART_DMAPause()
1970 husart->hdmatx->XferSuspendCallback = NULL; in HAL_USART_DMAPause()
1972 if (HAL_DMAEx_Suspend(husart->hdmatx) != HAL_OK) in HAL_USART_DMAPause()
1974 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAPause()
1977 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAPause()
1988 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1989 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1993 husart->hdmarx->XferSuspendCallback = NULL; in HAL_USART_DMAPause()
1995 if (HAL_DMAEx_Suspend(husart->hdmarx) != HAL_OK) in HAL_USART_DMAPause()
1997 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAPause()
2000 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAPause()
2010 husart->hdmatx->XferSuspendCallback = NULL; in HAL_USART_DMAPause()
2012 if (HAL_DMAEx_Suspend(husart->hdmatx) != HAL_OK) in HAL_USART_DMAPause()
2014 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAPause()
2017 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAPause()
2030 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
2040 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
2042 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
2045 __HAL_LOCK(husart); in HAL_USART_DMAResume()
2050 if (husart->hdmatx != NULL) in HAL_USART_DMAResume()
2052 if (HAL_DMAEx_Resume(husart->hdmatx) != HAL_OK) in HAL_USART_DMAResume()
2055 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAResume()
2065 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
2068 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
2070 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
2072 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
2075 if (husart->hdmarx != NULL) in HAL_USART_DMAResume()
2077 if (HAL_DMAEx_Resume(husart->hdmarx) != HAL_OK) in HAL_USART_DMAResume()
2080 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAResume()
2089 if (husart->hdmatx != NULL) in HAL_USART_DMAResume()
2091 if (HAL_DMAEx_Resume(husart->hdmatx) != HAL_OK) in HAL_USART_DMAResume()
2094 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAResume()
2107 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
2117 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
2127 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
2128 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
2131 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
2133 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
2135 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
2138 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
2145 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
2147 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
2149 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
2152 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
2159 USART_EndTransfer(husart); in HAL_USART_DMAStop()
2160 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
2178 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
2181 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort()
2183 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort()
2187 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
2191 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
2195 if (husart->hdmatx != NULL) in HAL_USART_Abort()
2199 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
2201 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
2203 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2206 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2215 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
2219 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
2223 if (husart->hdmarx != NULL) in HAL_USART_Abort()
2227 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
2229 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
2231 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2234 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2244 husart->TxXferCount = 0U; in HAL_USART_Abort()
2245 husart->RxXferCount = 0U; in HAL_USART_Abort()
2248 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
2251 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort()
2253 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2257 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2260 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
2263 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
2282 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
2287 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort_IT()
2289 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort_IT()
2295 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2299 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2301 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2305 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2309 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2313 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2315 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2319 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2324 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2328 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2332 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2338 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2340 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2350 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2354 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2358 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2364 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2366 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2381 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2382 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2385 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2388 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2391 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort_IT()
2393 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2397 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2400 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2405 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2408 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2420 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2422 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2423 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2424 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2439 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2441 husart->RxISR(husart); in HAL_USART_IRQHandler()
2455 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2457 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2463 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2465 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2471 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2473 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2481 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2483 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2489 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2491 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2498 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
2500 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2505 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2506 husart->ErrorCode |= HAL_USART_ERROR_UDR; in HAL_USART_IRQHandler()
2511 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2518 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2520 husart->RxISR(husart); in HAL_USART_IRQHandler()
2526 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2527 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2533 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2537 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2541 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2545 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2549 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2552 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2556 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2560 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2563 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2566 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2574 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2577 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2587 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2590 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2600 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2603 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2605 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2618 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2620 husart->TxISR(husart); in HAL_USART_IRQHandler()
2628 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2637 husart->TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2640 HAL_USARTEx_TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2650 husart->RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2653 HAL_USARTEx_RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2664 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2667 UNUSED(husart); in HAL_USART_TxCpltCallback()
2679 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2682 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2694 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2697 UNUSED(husart); in HAL_USART_RxCpltCallback()
2709 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2712 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2724 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2727 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2739 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2742 UNUSED(husart); in HAL_USART_ErrorCallback()
2754 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2757 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2791 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2793 return husart->State; in HAL_USART_GetState()
2802 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2804 return husart->ErrorCode; in HAL_USART_GetError()
2825 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2828husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2829husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2830husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2831husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2832husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2833husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2834husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2835husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in USART_InitCallbacksToDefault()
2836husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in USART_InitCallbacksToDefault()
2845 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2848 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in USART_EndTransfer()
2850 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in USART_EndTransfer()
2853 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2864 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2869 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2871 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2876 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2880 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2886 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2890 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2893 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2906 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2910 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2913 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2924 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2929 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2932 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2933 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2938 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2941 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2944 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2948 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2951 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2959 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2962 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2965 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2970 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2974 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2977 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2985 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2988 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
3001 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
3005 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
3008 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
3019 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
3021 husart->RxXferCount = 0U; in USART_DMAError()
3022 husart->TxXferCount = 0U; in USART_DMAError()
3023 USART_EndTransfer(husart); in USART_DMAError()
3025 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
3026 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
3030 husart->ErrorCallback(husart); in USART_DMAError()
3033 HAL_USART_ErrorCallback(husart); in USART_DMAError()
3045 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
3046 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
3047 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
3051 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
3054 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
3068 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
3070 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
3073 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
3075 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
3082 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
3083 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
3086 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
3089 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
3092 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
3097 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
3100 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
3116 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
3118 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
3121 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
3123 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
3130 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
3131 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
3134 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
3137 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
3140 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
3145 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
3148 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
3164 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
3168 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
3175 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
3178 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
3192 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
3206 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
3207 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
3208 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
3209 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
3210 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
3211 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
3212 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
3213 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
3214 assert_param(IS_USART_PRESCALER(husart->Init.ClockPrescaler)); in USART_SetConfig()
3223 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
3224 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
3233 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
3234 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
3235 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
3236 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
3241 MODIFY_REG(husart->Instance->PRESC, USART_PRESC_PRESCALER, husart->Init.ClockPrescaler); in USART_SetConfig()
3245 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
3251 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3255 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3259 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pll2_clocks.PLL2_Q_Frequency, husart->Init.BaudRate, in USART_SetConfig()
3260 husart->Init.ClockPrescaler)); in USART_SetConfig()
3265 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pll3_clocks.PLL3_Q_Frequency, husart->Init.BaudRate, in USART_SetConfig()
3266 husart->Init.ClockPrescaler)); in USART_SetConfig()
3270 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3273 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(CSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3276 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3288 husart->Instance->BRR = brrtemp; in USART_SetConfig()
3296 husart->NbTxDataToProcess = 1U; in USART_SetConfig()
3297 husart->NbRxDataToProcess = 1U; in USART_SetConfig()
3300 husart->RxISR = NULL; in USART_SetConfig()
3301 husart->TxISR = NULL; in USART_SetConfig()
3311 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
3316 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
3322 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
3325 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3332 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
3335 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3343 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
3346 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3361 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3363 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3369 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3372 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3375 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3379 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3380 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3381 husart->TxXferCount--; in USART_TxISR_8BIT()
3396 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3398 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3404 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3407 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3410 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3414 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3415 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3416 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3417 husart->TxXferCount--; in USART_TxISR_16BIT()
3432 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_8BIT_FIFOEN() argument
3434 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT_FIFOEN()
3441 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_8BIT_FIFOEN()
3443 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT_FIFOEN()
3446 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_8BIT_FIFOEN()
3449 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT_FIFOEN()
3453 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_8BIT_FIFOEN()
3455 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT_FIFOEN()
3456 husart->pTxBuffPtr++; in USART_TxISR_8BIT_FIFOEN()
3457 husart->TxXferCount--; in USART_TxISR_8BIT_FIFOEN()
3477 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_16BIT_FIFOEN() argument
3479 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT_FIFOEN()
3487 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_16BIT_FIFOEN()
3489 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT_FIFOEN()
3492 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_16BIT_FIFOEN()
3495 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT_FIFOEN()
3499 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_16BIT_FIFOEN()
3501 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT_FIFOEN()
3502 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT_FIFOEN()
3503 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT_FIFOEN()
3504 husart->TxXferCount--; in USART_TxISR_16BIT_FIFOEN()
3520 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3523 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3526 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3529 husart->TxISR = NULL; in USART_EndTransmit_IT()
3531 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3534 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3535 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3538 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3542 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3545 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3548 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3551 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3555 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3558 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3577 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3579 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3581 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3587 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3588 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3589 husart->RxXferCount--; in USART_RxISR_8BIT()
3591 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3594 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3597 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3600 husart->RxISR = NULL; in USART_RxISR_8BIT()
3603 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT()
3604 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3609 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT()
3611 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT()
3612 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT()
3616 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3620 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3623 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3626 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3631 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3635 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3638 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3647 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT()
3650 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3668 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3670 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3673 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3679 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3680 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3681 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3682 husart->RxXferCount--; in USART_RxISR_16BIT()
3684 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3687 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3690 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3693 husart->RxISR = NULL; in USART_RxISR_16BIT()
3696 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT()
3697 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3702 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT()
3704 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT()
3705 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT()
3709 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3713 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3716 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3719 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3724 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3728 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3731 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3740 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT()
3743 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()
3761 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_8BIT_FIFOEN() argument
3763 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT_FIFOEN()
3766 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT_FIFOEN()
3774 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_8BIT_FIFOEN()
3776 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_8BIT_FIFOEN()
3778 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in USART_RxISR_8BIT_FIFOEN()
3779 husart->pRxBuffPtr++; in USART_RxISR_8BIT_FIFOEN()
3780 husart->RxXferCount--; in USART_RxISR_8BIT_FIFOEN()
3782 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT_FIFOEN()
3785 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_8BIT_FIFOEN()
3789 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_8BIT_FIFOEN()
3792 husart->RxISR = NULL; in USART_RxISR_8BIT_FIFOEN()
3795 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT_FIFOEN()
3796 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT_FIFOEN()
3801 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT_FIFOEN()
3803 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT_FIFOEN()
3804 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3808 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3813 husart->RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3816 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3819 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT_FIFOEN()
3824 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3829 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3832 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3841 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3844 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3857 rxdatacount = husart->RxXferCount; in USART_RxISR_8BIT_FIFOEN()
3858 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_8BIT_FIFOEN()
3861 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_8BIT_FIFOEN()
3864 husart->RxISR = USART_RxISR_8BIT; in USART_RxISR_8BIT_FIFOEN()
3867 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_8BIT_FIFOEN()
3869 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
3871 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3874 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3881 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3894 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_16BIT_FIFOEN() argument
3896 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT_FIFOEN()
3900 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT_FIFOEN()
3908 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_16BIT_FIFOEN()
3910 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_16BIT_FIFOEN()
3912 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT_FIFOEN()
3913 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT_FIFOEN()
3914 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT_FIFOEN()
3915 husart->RxXferCount--; in USART_RxISR_16BIT_FIFOEN()
3917 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT_FIFOEN()
3920 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_16BIT_FIFOEN()
3924 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_16BIT_FIFOEN()
3927 husart->RxISR = NULL; in USART_RxISR_16BIT_FIFOEN()
3930 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT_FIFOEN()
3931 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT_FIFOEN()
3936 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT_FIFOEN()
3938 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT_FIFOEN()
3939 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()
3943 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3948 husart->RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3951 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3954 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT_FIFOEN()
3959 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3964 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3967 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3976 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3979 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3992 rxdatacount = husart->RxXferCount; in USART_RxISR_16BIT_FIFOEN()
3993 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_16BIT_FIFOEN()
3996 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_16BIT_FIFOEN()
3999 husart->RxISR = USART_RxISR_16BIT; in USART_RxISR_16BIT_FIFOEN()
4002 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_16BIT_FIFOEN()
4004 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
4006 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
4009 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
4016 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()