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()
427 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
435 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
440 __HAL_LOCK(husart); 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()
530 __HAL_UNLOCK(husart); in HAL_USART_RegisterCallback()
554 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
559 __HAL_LOCK(husart); in HAL_USART_UnRegisterCallback()
561 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
566 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
570 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
574 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
578 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
582 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
586 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
590 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
594 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in HAL_USART_UnRegisterCallback()
598 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in HAL_USART_UnRegisterCallback()
602 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
606 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
611 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
618 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
623 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
627 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
632 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
642 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
649 __HAL_UNLOCK(husart); in HAL_USART_UnRegisterCallback()
757 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
763 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
774 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
784 __HAL_LOCK(husart); in HAL_USART_Transmit()
786 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
787 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
792 husart->TxXferSize = Size; in HAL_USART_Transmit()
793 husart->TxXferCount = Size; in HAL_USART_Transmit()
796 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
808 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
810 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
816 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
821 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
825 husart->TxXferCount--; in HAL_USART_Transmit()
828 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
834 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
837 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
838 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
839 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
842 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
845 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
872 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
879 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
890 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
900 __HAL_LOCK(husart); in HAL_USART_Receive()
902 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
903 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
908 husart->RxXferSize = Size; in HAL_USART_Receive()
909 husart->RxXferCount = Size; in HAL_USART_Receive()
912 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
913 uhMask = husart->Mask; in HAL_USART_Receive()
916 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
928 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
930 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive()
936 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
940 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
944 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
951 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
956 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
960 husart->RxXferCount--; in HAL_USART_Receive()
965 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in HAL_USART_Receive()
967 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_Receive()
968 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Receive()
972 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
975 __HAL_UNLOCK(husart); in HAL_USART_Receive()
1002 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
1013 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
1024 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1034 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
1036 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
1037 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
1042 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
1043 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
1044 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
1045 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
1048 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
1049 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1052 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1067 if ((husart->TxXferCount == 0x01U) || (husart->SlaveMode == USART_SLAVEMODE_ENABLE)) in HAL_USART_TransmitReceive()
1070 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1076 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1081 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1085 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1090 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1091 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1093 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1096 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1102 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1107 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1111 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1114 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1117 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1124 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1129 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1133 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1135 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1139 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1142 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1167 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1169 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1180 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1190 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1192 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1193 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1194 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1195 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1197 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1198 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1207 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Transmit_IT()
1210 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1212 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_Transmit_IT()
1216 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_Transmit_IT()
1220 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1223 __HAL_USART_ENABLE_IT(husart, USART_IT_TXFT); in HAL_USART_Transmit_IT()
1228 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1230 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1234 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1238 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1241 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1268 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1272 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1283 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1293 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1295 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1296 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1297 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1298 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1300 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1302 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1303 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1306 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1309 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1312 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1314 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_Receive_IT()
1318 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_Receive_IT()
1322 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1325 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1327 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_IT()
1329 SET_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in HAL_USART_Receive_IT()
1334 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1336 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1340 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1344 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1347 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1349 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1353 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1357 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive_IT()
1363 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1365 for (nb_dummy_data = husart->NbRxDataToProcess ; nb_dummy_data > 0U ; nb_dummy_data--) in HAL_USART_Receive_IT()
1367 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1372 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1400 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1404 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1415 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1425 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1427 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1428 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1429 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1430 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1431 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1432 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1435 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1437 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1438 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1441 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_TransmitReceive_IT()
1444 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1446 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1447 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1451 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1452 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1456 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1459 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1461 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1464 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1468 SET_BIT(husart->Instance->CR3, (USART_CR3_TXFTIE | USART_CR3_RXFTIE)); in HAL_USART_TransmitReceive_IT()
1472 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1474 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1475 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1479 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1480 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1484 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1487 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1490 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1492 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1496 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1500 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_USART_TransmitReceive_IT()
1527 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1532 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1543 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_DMA()
1553 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1555 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1556 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1557 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1559 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1560 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1562 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1565 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1568 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1571 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1575 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1581 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1584 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1588 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1595 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1598 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1601 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1631 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1637 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1648 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_DMA()
1658 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1660 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1661 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1662 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1663 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1665 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1666 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1668 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1671 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1674 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1677 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1680 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1684 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in HAL_USART_Receive_DMA()
1691 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1693 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1694 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1695 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1696 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1703 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1705 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1708 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1712 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1716 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1720 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1726 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1728 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1735 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1738 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1741 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1770 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1776 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1787 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_DMA()
1797 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1799 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1800 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1801 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1802 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1804 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1805 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1807 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1810 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1813 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1816 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1819 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1822 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1825 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1829 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1835 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1846 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1848 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1851 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1855 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1858 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1862 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1866 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1872 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1874 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1881 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1884 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1887 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1903 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1905 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1908 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1910 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1914 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1919 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1922 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1924 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1927 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1928 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1931 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1940 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1950 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1952 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1955 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1960 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1966 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1969 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1971 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1973 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1976 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1979 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1987 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1997 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
2007 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
2008 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
2011 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
2013 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
2015 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
2018 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
2025 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
2027 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
2029 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
2032 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
2039 USART_EndTransfer(husart); in HAL_USART_DMAStop()
2040 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
2057 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
2060 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort()
2062 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort()
2065 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
2068 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
2071 if (husart->hdmatx != NULL) in HAL_USART_Abort()
2075 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
2077 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
2079 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2082 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2091 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
2094 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
2097 if (husart->hdmarx != NULL) in HAL_USART_Abort()
2101 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
2103 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
2105 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2108 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2117 husart->TxXferCount = 0U; in HAL_USART_Abort()
2118 husart->RxXferCount = 0U; in HAL_USART_Abort()
2121 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
2124 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort()
2126 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2130 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2133 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
2136 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
2155 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
2160 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort_IT()
2162 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort_IT()
2167 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2171 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2173 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2177 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2181 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2185 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2187 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2191 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2196 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2199 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2202 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2208 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2210 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2220 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2223 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2226 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2232 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2234 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2248 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2249 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2252 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2255 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2258 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort_IT()
2260 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2264 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2267 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2272 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2275 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2287 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2289 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2290 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2291 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2306 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2308 husart->RxISR(husart); in HAL_USART_IRQHandler()
2322 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2324 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2330 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2332 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2338 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2340 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2348 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2350 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2357 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
2359 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2364 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2365 husart->ErrorCode |= HAL_USART_ERROR_UDR; in HAL_USART_IRQHandler()
2370 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2377 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2379 husart->RxISR(husart); in HAL_USART_IRQHandler()
2385 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2386 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2392 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2395 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2398 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2401 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2405 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2408 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2412 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2416 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2419 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2422 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2430 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2433 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2442 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2445 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2455 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2458 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2460 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2473 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2475 husart->TxISR(husart); in HAL_USART_IRQHandler()
2483 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2492 husart->TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2495 HAL_USARTEx_TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2505 husart->RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2508 HAL_USARTEx_RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2519 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2522 UNUSED(husart); in HAL_USART_TxCpltCallback()
2534 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2537 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2549 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2552 UNUSED(husart); in HAL_USART_RxCpltCallback()
2564 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2567 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2579 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2582 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2594 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2597 UNUSED(husart); in HAL_USART_ErrorCallback()
2609 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2612 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2646 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2648 return husart->State; in HAL_USART_GetState()
2657 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2659 return husart->ErrorCode; in HAL_USART_GetError()
2680 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2683 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2684 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2685 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2686 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2687 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2688 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2689 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2690 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in USART_InitCallbacksToDefault()
2691 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in USART_InitCallbacksToDefault()
2700 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2703 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in USART_EndTransfer()
2705 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in USART_EndTransfer()
2708 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2718 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2723 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2725 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2729 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2732 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2738 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2742 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2745 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2758 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2762 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2765 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2776 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2781 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2784 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2785 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2789 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2792 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2794 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2798 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2801 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2809 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2812 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2815 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2820 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2824 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2827 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2835 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2838 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2851 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2855 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2858 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2869 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2871 husart->RxXferCount = 0U; in USART_DMAError()
2872 husart->TxXferCount = 0U; in USART_DMAError()
2873 USART_EndTransfer(husart); in USART_DMAError()
2875 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2876 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2880 husart->ErrorCallback(husart); in USART_DMAError()
2883 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2895 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2896 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2897 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2901 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2904 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2918 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2920 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2923 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2925 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2932 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2933 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2936 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2939 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2942 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2947 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2950 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2966 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2968 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2971 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2973 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2980 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2981 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2984 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2987 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2990 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2995 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2998 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
3013 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
3017 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
3024 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
3027 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
3041 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
3051 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
3052 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
3053 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
3054 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
3055 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
3056 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
3057 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
3058 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
3059 assert_param(IS_USART_PRESCALER(husart->Init.ClockPrescaler)); in USART_SetConfig()
3068 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
3069 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
3078 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
3079 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
3080 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
3081 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
3086 MODIFY_REG(husart->Instance->PRESC, USART_PRESC_PRESCALER, husart->Init.ClockPrescaler); in USART_SetConfig()
3090 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
3096 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3100 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3103 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3107 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3110 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3122 husart->Instance->BRR = brrtemp; in USART_SetConfig()
3130 husart->NbTxDataToProcess = 1U; in USART_SetConfig()
3131 husart->NbRxDataToProcess = 1U; in USART_SetConfig()
3134 husart->RxISR = NULL; in USART_SetConfig()
3135 husart->TxISR = NULL; in USART_SetConfig()
3145 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
3150 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
3156 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
3159 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3166 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
3169 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3177 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
3180 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3195 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3197 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3203 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3206 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3209 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3213 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3214 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3215 husart->TxXferCount--; in USART_TxISR_8BIT()
3230 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3232 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3238 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3241 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3244 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3248 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3249 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3250 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3251 husart->TxXferCount--; in USART_TxISR_16BIT()
3266 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_8BIT_FIFOEN() argument
3268 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT_FIFOEN()
3275 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_8BIT_FIFOEN()
3277 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT_FIFOEN()
3280 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_8BIT_FIFOEN()
3283 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT_FIFOEN()
3287 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_8BIT_FIFOEN()
3289 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT_FIFOEN()
3290 husart->pTxBuffPtr++; in USART_TxISR_8BIT_FIFOEN()
3291 husart->TxXferCount--; in USART_TxISR_8BIT_FIFOEN()
3311 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_16BIT_FIFOEN() argument
3313 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT_FIFOEN()
3321 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_16BIT_FIFOEN()
3323 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT_FIFOEN()
3326 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_16BIT_FIFOEN()
3329 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT_FIFOEN()
3333 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_16BIT_FIFOEN()
3335 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT_FIFOEN()
3336 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT_FIFOEN()
3337 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT_FIFOEN()
3338 husart->TxXferCount--; in USART_TxISR_16BIT_FIFOEN()
3354 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3357 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3360 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3363 husart->TxISR = NULL; in USART_EndTransmit_IT()
3365 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3368 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3369 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3372 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3376 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3379 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3382 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3385 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3389 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3392 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3411 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3413 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3415 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3421 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3422 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3423 husart->RxXferCount--; in USART_RxISR_8BIT()
3425 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3428 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3431 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3434 husart->RxISR = NULL; in USART_RxISR_8BIT()
3437 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT()
3438 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3443 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT()
3445 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT()
3446 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT()
3450 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3454 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3457 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3460 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3465 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3469 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3472 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3481 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT()
3484 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3502 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3504 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3507 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3513 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3514 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3515 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3516 husart->RxXferCount--; in USART_RxISR_16BIT()
3518 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3521 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3524 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3527 husart->RxISR = NULL; in USART_RxISR_16BIT()
3530 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT()
3531 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3536 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT()
3538 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT()
3539 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT()
3543 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3547 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3550 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3553 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3558 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3562 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3565 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3574 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT()
3577 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()
3595 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_8BIT_FIFOEN() argument
3597 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT_FIFOEN()
3600 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT_FIFOEN()
3608 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_8BIT_FIFOEN()
3610 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_8BIT_FIFOEN()
3612 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in USART_RxISR_8BIT_FIFOEN()
3613 husart->pRxBuffPtr++; in USART_RxISR_8BIT_FIFOEN()
3614 husart->RxXferCount--; in USART_RxISR_8BIT_FIFOEN()
3616 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT_FIFOEN()
3619 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_8BIT_FIFOEN()
3623 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_8BIT_FIFOEN()
3626 husart->RxISR = NULL; in USART_RxISR_8BIT_FIFOEN()
3629 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT_FIFOEN()
3630 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT_FIFOEN()
3635 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT_FIFOEN()
3637 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT_FIFOEN()
3638 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3642 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3647 husart->RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3650 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3653 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT_FIFOEN()
3658 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3663 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3666 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3675 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3678 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3691 rxdatacount = husart->RxXferCount; in USART_RxISR_8BIT_FIFOEN()
3692 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_8BIT_FIFOEN()
3695 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_8BIT_FIFOEN()
3698 husart->RxISR = USART_RxISR_8BIT; in USART_RxISR_8BIT_FIFOEN()
3701 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_8BIT_FIFOEN()
3703 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
3705 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3708 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3715 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3728 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_16BIT_FIFOEN() argument
3730 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT_FIFOEN()
3734 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT_FIFOEN()
3742 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_16BIT_FIFOEN()
3744 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_16BIT_FIFOEN()
3746 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT_FIFOEN()
3747 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT_FIFOEN()
3748 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT_FIFOEN()
3749 husart->RxXferCount--; in USART_RxISR_16BIT_FIFOEN()
3751 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT_FIFOEN()
3754 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_16BIT_FIFOEN()
3758 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_16BIT_FIFOEN()
3761 husart->RxISR = NULL; in USART_RxISR_16BIT_FIFOEN()
3764 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT_FIFOEN()
3765 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT_FIFOEN()
3770 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT_FIFOEN()
3772 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT_FIFOEN()
3773 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()
3777 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3782 husart->RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3785 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3788 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT_FIFOEN()
3793 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3798 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3801 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3810 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3813 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3826 rxdatacount = husart->RxXferCount; in USART_RxISR_16BIT_FIFOEN()
3827 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_16BIT_FIFOEN()
3830 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_16BIT_FIFOEN()
3833 husart->RxISR = USART_RxISR_16BIT; in USART_RxISR_16BIT_FIFOEN()
3836 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_16BIT_FIFOEN()
3838 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
3840 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3843 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3850 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()