Lines Matching refs:husart

183 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
185 static void USART_EndTransfer(USART_HandleTypeDef *husart);
194 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
196 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
197 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
198 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
199 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
200 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
201 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
202 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
203 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
204 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
205 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
206 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
276 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
279 if (husart == NULL) in HAL_USART_Init()
285 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
287 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
290 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
293 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
295 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
297 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
301 husart->MspInitCallback(husart); in HAL_USART_Init()
304 HAL_USART_MspInit(husart); in HAL_USART_Init()
308 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
311 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
314 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
323 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
324 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
327 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
330 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
338 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
341 if (husart == NULL) in HAL_USART_DeInit()
347 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
349 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
351 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
352 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
353 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
356 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
358 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
361 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
364 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
367 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
368 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
371 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
381 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
384 UNUSED(husart); in HAL_USART_MspInit()
396 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
399 UNUSED(husart); in HAL_USART_MspDeInit()
429 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
437 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
442 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
447 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
451 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
455 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
459 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
463 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
467 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
471 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
475 husart->RxFifoFullCallback = pCallback; in HAL_USART_RegisterCallback()
479 husart->TxFifoEmptyCallback = pCallback; in HAL_USART_RegisterCallback()
483 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
487 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
492 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
499 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
504 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
508 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
513 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
523 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
553 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
557 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
562husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
566husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
570husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
574husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
578husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
582husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
586husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
590husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in HAL_USART_UnRegisterCallback()
594husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in HAL_USART_UnRegisterCallback()
598husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
602husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
607 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
614 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
619 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
623 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
628 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
638 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
743 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
750 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
758 __HAL_LOCK(husart); in HAL_USART_Transmit()
760 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
761 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
766 husart->TxXferSize = Size; in HAL_USART_Transmit()
767 husart->TxXferCount = Size; in HAL_USART_Transmit()
770 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
782 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
784 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
790 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
795 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
799 husart->TxXferCount--; in HAL_USART_Transmit()
802 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
808 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
811 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
812 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
813 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
816 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
819 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
841 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
848 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
856 __HAL_LOCK(husart); in HAL_USART_Receive()
858 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
859 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
864 husart->RxXferSize = Size; in HAL_USART_Receive()
865 husart->RxXferCount = Size; in HAL_USART_Receive()
868 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
869 uhMask = husart->Mask; in HAL_USART_Receive()
872 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
884 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
886 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive()
892 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
896 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
900 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
907 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
912 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
916 husart->RxXferCount--; in HAL_USART_Receive()
921 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in HAL_USART_Receive()
923 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_Receive()
924 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Receive()
928 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
931 __HAL_UNLOCK(husart); in HAL_USART_Receive()
953 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
964 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
972 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
974 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
975 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
980 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
981 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
982 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
983 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
986 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
987 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
990 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1005 if ((husart->TxXferCount == 0x01U) || (husart->SlaveMode == USART_SLAVEMODE_ENABLE)) in HAL_USART_TransmitReceive()
1008 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1014 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1019 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1023 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1028 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1029 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1031 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1034 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1040 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1045 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1049 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1052 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1055 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1062 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1067 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1071 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1073 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1077 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1080 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1100 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1102 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1110 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1112 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1113 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1114 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1115 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1117 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1118 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1127 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Transmit_IT()
1130 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1132 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_Transmit_IT()
1136 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_Transmit_IT()
1140 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1143 __HAL_USART_ENABLE_IT(husart, USART_IT_TXFT); in HAL_USART_Transmit_IT()
1148 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1150 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1154 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1158 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1161 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1183 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1187 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1195 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1197 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1198 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1199 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1200 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1202 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1204 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1205 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1208 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1211 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1214 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1216 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_Receive_IT()
1220 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_Receive_IT()
1224 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1227 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1229 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_IT()
1231 SET_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in HAL_USART_Receive_IT()
1236 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1238 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1242 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1246 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1249 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1251 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1255 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1259 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive_IT()
1265 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1267 for (nb_dummy_data = husart->NbRxDataToProcess ; nb_dummy_data > 0U ; nb_dummy_data--) in HAL_USART_Receive_IT()
1269 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1274 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1297 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1301 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1309 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1311 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1312 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1313 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1314 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1315 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1316 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1319 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1321 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1322 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1325 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_TransmitReceive_IT()
1328 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1330 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1331 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1335 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1336 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1340 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1343 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1345 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1348 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1352 SET_BIT(husart->Instance->CR3, (USART_CR3_TXFTIE | USART_CR3_RXFTIE)); in HAL_USART_TransmitReceive_IT()
1356 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1358 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1359 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1363 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1364 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1368 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1371 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1374 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1376 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1380 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1384 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_USART_TransmitReceive_IT()
1405 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1410 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1418 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1420 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1421 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1422 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1424 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1425 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1427 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1430 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1433 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1436 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1440 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1446 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1449 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1453 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1460 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1463 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1466 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1490 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1496 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1504 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1506 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1507 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1508 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1509 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1511 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1512 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1514 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1517 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1520 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1523 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1526 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1530 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in HAL_USART_Receive_DMA()
1537 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1539 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1540 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1541 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1542 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1549 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1551 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1554 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1558 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1562 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1566 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1572 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1574 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1581 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1584 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1587 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1610 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1616 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1624 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1626 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1627 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1628 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1629 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1631 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1632 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1634 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1637 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1640 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1643 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1646 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1649 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1652 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1656 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1662 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1673 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1675 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1678 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1682 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1685 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1689 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1693 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1699 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1701 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1708 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1711 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1714 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1730 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1732 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1735 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1737 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1741 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1746 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1749 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1751 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1754 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1755 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1758 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1767 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1777 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1779 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1782 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1787 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1793 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1796 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1798 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1800 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1803 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1806 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1814 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1824 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1834 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1835 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1838 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1840 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1842 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1845 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1852 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1854 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1856 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1859 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1866 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1867 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
1884 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1887 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort()
1889 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort()
1892 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1895 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1898 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1902 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1904 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
1906 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1909 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1918 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1921 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1924 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1928 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1930 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
1932 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1935 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1944 husart->TxXferCount = 0U; in HAL_USART_Abort()
1945 husart->RxXferCount = 0U; in HAL_USART_Abort()
1948 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
1951 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort()
1953 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
1957 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
1960 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1963 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1982 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1987 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort_IT()
1989 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort_IT()
1994 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1998 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2000 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2004 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2008 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2012 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2014 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2018 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2023 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2026 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2029 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2035 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2037 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2047 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2050 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2053 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2059 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2061 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2075 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2076 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2079 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2082 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2085 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort_IT()
2087 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2091 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2094 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2099 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2102 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2114 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2116 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2117 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2118 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2133 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2135 husart->RxISR(husart); in HAL_USART_IRQHandler()
2149 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2151 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2157 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2159 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2165 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2167 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2175 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2177 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2183 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2185 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2192 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
2194 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2199 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2200 husart->ErrorCode |= HAL_USART_ERROR_UDR; in HAL_USART_IRQHandler()
2205 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2212 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2214 husart->RxISR(husart); in HAL_USART_IRQHandler()
2220 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2221 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2227 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2230 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2233 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2236 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2240 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2243 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2247 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2251 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2254 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2257 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2265 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2268 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2277 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2280 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2290 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2293 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2295 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2308 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2310 husart->TxISR(husart); in HAL_USART_IRQHandler()
2318 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2327 husart->TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2330 HAL_USARTEx_TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2340 husart->RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2343 HAL_USARTEx_RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2354 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2357 UNUSED(husart); in HAL_USART_TxCpltCallback()
2369 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2372 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2384 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2387 UNUSED(husart); in HAL_USART_RxCpltCallback()
2399 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2402 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2414 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2417 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2429 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2432 UNUSED(husart); in HAL_USART_ErrorCallback()
2444 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2447 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2481 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2483 return husart->State; in HAL_USART_GetState()
2492 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2494 return husart->ErrorCode; in HAL_USART_GetError()
2515 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2518husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2519husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2520husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2521husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2522husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2523husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2524husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2525husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in USART_InitCallbacksToDefault()
2526husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in USART_InitCallbacksToDefault()
2535 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2538 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in USART_EndTransfer()
2540 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in USART_EndTransfer()
2543 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2553 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2558 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2560 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2564 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2567 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2573 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2577 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2580 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2593 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2597 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2600 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2611 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2616 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2619 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2620 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2624 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2627 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2629 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2633 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2636 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2644 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2647 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2650 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2655 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2659 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2662 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2670 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2673 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2686 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2690 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2693 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2704 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2706 husart->RxXferCount = 0U; in USART_DMAError()
2707 husart->TxXferCount = 0U; in USART_DMAError()
2708 USART_EndTransfer(husart); in USART_DMAError()
2710 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2711 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2715 husart->ErrorCallback(husart); in USART_DMAError()
2718 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2730 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2731 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2732 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2736 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2739 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2753 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2755 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2758 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2760 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2767 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2768 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2771 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2774 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2777 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2782 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2785 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2801 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2803 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2806 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2808 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2815 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2816 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2819 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2822 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2825 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2830 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2833 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2848 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2852 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2859 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2862 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2876 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2886 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2887 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2888 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2889 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2890 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2891 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2892 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2893 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2894 assert_param(IS_USART_PRESCALER(husart->Init.ClockPrescaler)); in USART_SetConfig()
2903 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
2904 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
2913 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
2914 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
2915 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
2916 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
2921 MODIFY_REG(husart->Instance->PRESC, USART_PRESC_PRESCALER, husart->Init.ClockPrescaler); in USART_SetConfig()
2925 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
2931 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
2935 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
2938 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
2942 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
2945 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
2957 husart->Instance->BRR = brrtemp; in USART_SetConfig()
2965 husart->NbTxDataToProcess = 1U; in USART_SetConfig()
2966 husart->NbRxDataToProcess = 1U; in USART_SetConfig()
2969 husart->RxISR = NULL; in USART_SetConfig()
2970 husart->TxISR = NULL; in USART_SetConfig()
2980 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
2985 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
2991 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
2994 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3001 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
3004 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3012 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
3015 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3030 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3032 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3038 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3041 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3044 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3048 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3049 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3050 husart->TxXferCount--; in USART_TxISR_8BIT()
3065 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3067 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3073 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3076 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3079 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3083 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3084 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3085 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3086 husart->TxXferCount--; in USART_TxISR_16BIT()
3101 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_8BIT_FIFOEN() argument
3103 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT_FIFOEN()
3110 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_8BIT_FIFOEN()
3112 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT_FIFOEN()
3115 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_8BIT_FIFOEN()
3118 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT_FIFOEN()
3122 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_8BIT_FIFOEN()
3124 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT_FIFOEN()
3125 husart->pTxBuffPtr++; in USART_TxISR_8BIT_FIFOEN()
3126 husart->TxXferCount--; in USART_TxISR_8BIT_FIFOEN()
3146 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_16BIT_FIFOEN() argument
3148 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT_FIFOEN()
3156 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_16BIT_FIFOEN()
3158 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT_FIFOEN()
3161 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_16BIT_FIFOEN()
3164 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT_FIFOEN()
3168 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_16BIT_FIFOEN()
3170 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT_FIFOEN()
3171 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT_FIFOEN()
3172 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT_FIFOEN()
3173 husart->TxXferCount--; in USART_TxISR_16BIT_FIFOEN()
3189 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3192 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3195 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3198 husart->TxISR = NULL; in USART_EndTransmit_IT()
3200 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3203 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3204 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3207 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3211 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3214 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3217 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3220 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3224 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3227 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3246 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3248 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3250 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3256 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3257 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3258 husart->RxXferCount--; in USART_RxISR_8BIT()
3260 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3263 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3266 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3269 husart->RxISR = NULL; in USART_RxISR_8BIT()
3272 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT()
3273 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3278 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT()
3280 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT()
3281 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT()
3285 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3289 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3292 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3295 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3300 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3304 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3307 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3316 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT()
3319 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3337 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3339 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3342 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3348 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3349 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3350 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3351 husart->RxXferCount--; in USART_RxISR_16BIT()
3353 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3356 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3359 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3362 husart->RxISR = NULL; in USART_RxISR_16BIT()
3365 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT()
3366 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3371 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT()
3373 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT()
3374 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT()
3378 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3382 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3385 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3388 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3393 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3397 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3400 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3409 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT()
3412 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()
3430 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_8BIT_FIFOEN() argument
3432 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT_FIFOEN()
3435 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT_FIFOEN()
3443 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_8BIT_FIFOEN()
3445 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_8BIT_FIFOEN()
3447 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in USART_RxISR_8BIT_FIFOEN()
3448 husart->pRxBuffPtr++; in USART_RxISR_8BIT_FIFOEN()
3449 husart->RxXferCount--; in USART_RxISR_8BIT_FIFOEN()
3451 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT_FIFOEN()
3454 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_8BIT_FIFOEN()
3458 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_8BIT_FIFOEN()
3461 husart->RxISR = NULL; in USART_RxISR_8BIT_FIFOEN()
3464 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT_FIFOEN()
3465 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT_FIFOEN()
3470 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT_FIFOEN()
3472 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT_FIFOEN()
3473 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3477 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3482 husart->RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3485 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3488 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT_FIFOEN()
3493 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3498 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3501 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3510 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3513 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3526 rxdatacount = husart->RxXferCount; in USART_RxISR_8BIT_FIFOEN()
3527 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_8BIT_FIFOEN()
3530 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_8BIT_FIFOEN()
3533 husart->RxISR = USART_RxISR_8BIT; in USART_RxISR_8BIT_FIFOEN()
3536 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_8BIT_FIFOEN()
3538 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
3540 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3543 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3550 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3563 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_16BIT_FIFOEN() argument
3565 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT_FIFOEN()
3569 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT_FIFOEN()
3577 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_16BIT_FIFOEN()
3579 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_16BIT_FIFOEN()
3581 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT_FIFOEN()
3582 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT_FIFOEN()
3583 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT_FIFOEN()
3584 husart->RxXferCount--; in USART_RxISR_16BIT_FIFOEN()
3586 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT_FIFOEN()
3589 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_16BIT_FIFOEN()
3593 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_16BIT_FIFOEN()
3596 husart->RxISR = NULL; in USART_RxISR_16BIT_FIFOEN()
3599 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT_FIFOEN()
3600 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT_FIFOEN()
3605 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT_FIFOEN()
3607 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT_FIFOEN()
3608 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()
3612 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3617 husart->RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3620 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3623 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT_FIFOEN()
3628 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3633 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3636 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3645 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3648 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3661 rxdatacount = husart->RxXferCount; in USART_RxISR_16BIT_FIFOEN()
3662 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_16BIT_FIFOEN()
3665 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_16BIT_FIFOEN()
3668 husart->RxISR = USART_RxISR_16BIT; in USART_RxISR_16BIT_FIFOEN()
3671 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_16BIT_FIFOEN()
3673 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
3675 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3678 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3685 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()