Lines Matching refs:husart
190 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
192 static void USART_EndTransfer(USART_HandleTypeDef *husart);
201 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
203 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
204 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
205 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
206 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
208 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
209 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
211 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
212 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
213 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
215 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart);
216 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart);
287 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
290 if (husart == NULL) in HAL_USART_Init()
296 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
298 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
301 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
304 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
306 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
308 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
312 husart->MspInitCallback(husart); in HAL_USART_Init()
315 HAL_USART_MspInit(husart); in HAL_USART_Init()
319 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
322 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
325 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
334 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
335 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
338 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
341 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
349 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
352 if (husart == NULL) in HAL_USART_DeInit()
358 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
360 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
362 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
363 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
364 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
367 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
369 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
372 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
375 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
378 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
379 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
382 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
392 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
395 UNUSED(husart); in HAL_USART_MspInit()
407 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
410 UNUSED(husart); in HAL_USART_MspDeInit()
440 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
448 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
453 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
458 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
462 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
466 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
470 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
474 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
478 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
482 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
487 husart->RxFifoFullCallback = pCallback; in HAL_USART_RegisterCallback()
491 husart->TxFifoEmptyCallback = pCallback; in HAL_USART_RegisterCallback()
496 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
500 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
505 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
512 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
517 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
521 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
526 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
536 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
566 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
570 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
575 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
579 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
583 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
587 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
591 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
595 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
599 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
604 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in HAL_USART_UnRegisterCallback()
608 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in HAL_USART_UnRegisterCallback()
613 …husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
617 …husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
622 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
629 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
634 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
638 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
643 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
653 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
758 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
765 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
773 __HAL_LOCK(husart); in HAL_USART_Transmit()
775 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
776 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
781 husart->TxXferSize = Size; in HAL_USART_Transmit()
782 husart->TxXferCount = Size; in HAL_USART_Transmit()
785 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
797 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
799 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
805 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
810 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
814 husart->TxXferCount--; in HAL_USART_Transmit()
817 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
823 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
826 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
827 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
828 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
831 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
834 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
856 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
863 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
871 __HAL_LOCK(husart); in HAL_USART_Receive()
873 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
874 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
879 husart->RxXferSize = Size; in HAL_USART_Receive()
880 husart->RxXferCount = Size; in HAL_USART_Receive()
883 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
884 uhMask = husart->Mask; in HAL_USART_Receive()
887 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
899 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
902 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive()
909 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
913 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
917 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
924 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
929 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
933 husart->RxXferCount--; in HAL_USART_Receive()
939 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in HAL_USART_Receive()
941 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_Receive()
942 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Receive()
947 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
950 __HAL_UNLOCK(husart); in HAL_USART_Receive()
972 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
983 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
991 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
993 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
994 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
999 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
1000 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
1001 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
1002 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
1005 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
1006 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
1009 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
1025 if ((husart->TxXferCount == 0x01U) || (husart->SlaveMode == USART_SLAVEMODE_ENABLE)) in HAL_USART_TransmitReceive()
1027 if (husart->TxXferCount == 0x01U) in HAL_USART_TransmitReceive()
1031 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1037 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1042 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1046 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1051 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1052 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1054 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1057 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1063 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1068 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1072 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1075 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1078 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1085 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1090 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1094 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1096 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1100 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1103 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1123 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1125 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1133 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1135 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1136 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1137 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1138 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1140 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1141 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1151 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Transmit_IT()
1154 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1156 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_Transmit_IT()
1160 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_Transmit_IT()
1164 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1167 __HAL_USART_ENABLE_IT(husart, USART_IT_TXFT); in HAL_USART_Transmit_IT()
1173 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1175 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1179 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1183 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1186 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1208 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1214 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1222 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1224 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1225 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1226 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1227 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1229 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1231 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1232 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1235 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1239 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1242 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1244 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_Receive_IT()
1248 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_Receive_IT()
1252 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1255 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1257 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_IT()
1259 SET_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in HAL_USART_Receive_IT()
1265 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1267 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1271 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1275 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1279 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1281 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1285 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_Receive_IT()
1288 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1290 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1294 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1300 if (husart->SlaveMode == USART_SLAVEMODE_DISABLE) in HAL_USART_Receive_IT()
1308 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_Receive_IT()
1310 for (nb_dummy_data = husart->NbRxDataToProcess ; nb_dummy_data > 0U ; nb_dummy_data--) in HAL_USART_Receive_IT()
1312 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1318 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1341 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1345 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1353 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1355 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1356 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1357 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1358 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1359 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1360 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1363 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1365 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1366 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1370 if ((husart->FifoMode == USART_FIFOMODE_ENABLE) && (Size >= husart->NbRxDataToProcess)) in HAL_USART_TransmitReceive_IT()
1373 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1375 husart->TxISR = USART_TxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1376 husart->RxISR = USART_RxISR_16BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1380 husart->TxISR = USART_TxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1381 husart->RxISR = USART_RxISR_8BIT_FIFOEN; in HAL_USART_TransmitReceive_IT()
1385 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1388 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1390 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1393 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_IT()
1397 SET_BIT(husart->Instance->CR3, (USART_CR3_TXFTIE | USART_CR3_RXFTIE)); in HAL_USART_TransmitReceive_IT()
1402 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1404 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1405 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1409 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1410 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1414 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1417 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1421 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1423 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1427 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in HAL_USART_TransmitReceive_IT()
1430 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1432 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1436 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1442 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE_TXFNFIE); in HAL_USART_TransmitReceive_IT()
1444 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1466 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1471 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1479 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1481 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1482 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1483 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1485 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1486 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1488 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1491 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1494 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1497 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1501 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1507 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1510 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1514 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1521 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1524 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1527 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1551 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1557 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1565 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1567 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1568 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1569 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1570 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1572 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1573 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1575 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1578 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1581 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1584 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1587 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1592 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in HAL_USART_Receive_DMA()
1600 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1602 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1603 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1604 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1605 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1612 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1614 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1617 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1621 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1625 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1629 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1635 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1637 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1644 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1647 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1650 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1673 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1679 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1687 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1689 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1690 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1691 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1692 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1694 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1695 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1697 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1700 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1703 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1706 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1709 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1712 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1715 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1719 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1725 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1736 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1738 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1741 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1745 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1748 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1752 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1756 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1762 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1764 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1771 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1774 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1777 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1793 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1795 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1798 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1800 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1804 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1809 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1812 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1814 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1817 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1818 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1821 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1830 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1840 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1842 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1845 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1850 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1856 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1859 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1861 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1863 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1866 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1869 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1877 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1887 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1897 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1898 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1901 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1903 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1905 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1908 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1915 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1917 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1919 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1922 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1929 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1930 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
1947 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1951 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort()
1953 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort()
1955 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1956 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1960 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1963 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1966 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1970 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1972 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
1974 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1977 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1986 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1989 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1992 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1996 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1998 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
2000 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
2003 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
2012 husart->TxXferCount = 0U; in HAL_USART_Abort()
2013 husart->RxXferCount = 0U; in HAL_USART_Abort()
2016 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
2020 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort()
2022 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2027 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
2030 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
2033 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
2052 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
2058 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in HAL_USART_Abort_IT()
2060 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in HAL_USART_Abort_IT()
2062 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
2063 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
2069 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2073 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2075 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
2079 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2083 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2087 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2089 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
2093 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2098 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
2101 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
2104 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
2110 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
2112 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2122 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
2125 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
2128 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
2134 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
2136 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
2150 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
2151 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
2154 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
2157 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
2161 if (husart->FifoMode == USART_FIFOMODE_ENABLE) in HAL_USART_Abort_IT()
2163 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2168 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
2171 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
2176 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2179 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
2191 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
2193 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
2194 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
2195 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2219 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2221 husart->RxISR(husart); in HAL_USART_IRQHandler()
2241 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2243 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2249 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2251 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2257 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2259 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2273 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2275 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2281 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2283 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2291 if (husart->State == HAL_USART_STATE_BUSY_RX) in HAL_USART_IRQHandler()
2293 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2298 __HAL_USART_CLEAR_UDRFLAG(husart); in HAL_USART_IRQHandler()
2299 husart->ErrorCode |= HAL_USART_ERROR_UDR; in HAL_USART_IRQHandler()
2305 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2317 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2319 husart->RxISR(husart); in HAL_USART_IRQHandler()
2325 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2326 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2332 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2335 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2338 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2341 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2345 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2348 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2352 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2356 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2359 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2362 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2370 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2373 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2382 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2385 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2395 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2398 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2400 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2418 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2420 husart->TxISR(husart); in HAL_USART_IRQHandler()
2428 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2438 husart->TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2441 HAL_USARTEx_TxFifoEmptyCallback(husart); in HAL_USART_IRQHandler()
2451 husart->RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2454 HAL_USARTEx_RxFifoFullCallback(husart); in HAL_USART_IRQHandler()
2466 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2469 UNUSED(husart); in HAL_USART_TxCpltCallback()
2481 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2484 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2496 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2499 UNUSED(husart); in HAL_USART_RxCpltCallback()
2511 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2514 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2526 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2529 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2541 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2544 UNUSED(husart); in HAL_USART_ErrorCallback()
2556 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2559 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2593 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2595 return husart->State; in HAL_USART_GetState()
2604 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2606 return husart->ErrorCode; in HAL_USART_GetError()
2627 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2630 …husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2631 …husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2632 …husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2633 …husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2634 …husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2635 …husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2636 …husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2638 …husart->RxFifoFullCallback = HAL_USARTEx_RxFifoFullCallback; /* Legacy weak RxFifoFull… in USART_InitCallbacksToDefault()
2639 …husart->TxFifoEmptyCallback = HAL_USARTEx_TxFifoEmptyCallback; /* Legacy weak TxFifoEmpt… in USART_InitCallbacksToDefault()
2649 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2653 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFN… in USART_EndTransfer()
2655 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE)); in USART_EndTransfer()
2658 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in USART_EndTransfer()
2659 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransfer()
2663 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2673 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2678 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2680 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2684 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2687 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2693 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2697 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2700 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2713 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2717 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2720 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2731 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2736 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2739 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2740 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2744 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2747 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2749 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2753 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2756 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2764 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2767 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2770 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2775 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2779 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2782 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2790 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2793 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2806 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2810 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2813 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2824 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2826 husart->RxXferCount = 0U; in USART_DMAError()
2827 husart->TxXferCount = 0U; in USART_DMAError()
2828 USART_EndTransfer(husart); in USART_DMAError()
2830 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2831 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2835 husart->ErrorCallback(husart); in USART_DMAError()
2838 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2850 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2851 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2852 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2856 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2859 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2873 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2875 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2878 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2880 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2887 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2888 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2891 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2894 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2897 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2902 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2905 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2921 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2923 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2926 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2928 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2935 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2936 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2939 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2942 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2945 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2950 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2953 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2968 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2972 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2979 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2982 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2996 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
3006 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
3007 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
3008 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
3009 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
3010 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
3011 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
3012 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
3013 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
3015 assert_param(IS_USART_PRESCALER(husart->Init.ClockPrescaler)); in USART_SetConfig()
3025 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
3026 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
3035 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
3036 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
3037 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
3038 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
3044 MODIFY_REG(husart->Instance->PRESC, USART_PRESC_PRESCALER, husart->Init.ClockPrescaler); in USART_SetConfig()
3049 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
3056 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3058 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
3064 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3066 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
3071 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3073 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
3079 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate, husart->Init.ClockPrescaler… in USART_SetConfig()
3081 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
3086 …usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate, husart->Init.ClockPres… in USART_SetConfig()
3088 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
3101 husart->Instance->BRR = brrtemp; in USART_SetConfig()
3110 husart->NbTxDataToProcess = 1U; in USART_SetConfig()
3111 husart->NbRxDataToProcess = 1U; in USART_SetConfig()
3115 husart->RxISR = NULL; in USART_SetConfig()
3116 husart->TxISR = NULL; in USART_SetConfig()
3126 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
3131 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
3137 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
3140 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3147 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
3150 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
3158 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
3161 __HAL_UNLOCK(husart); in USART_CheckIdleState()
3176 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
3178 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
3184 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
3187 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
3190 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
3194 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
3195 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
3196 husart->TxXferCount--; in USART_TxISR_8BIT()
3211 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
3213 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
3219 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
3222 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
3225 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
3229 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
3230 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
3231 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
3232 husart->TxXferCount--; in USART_TxISR_16BIT()
3248 static void USART_TxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_8BIT_FIFOEN() argument
3250 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT_FIFOEN()
3257 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_8BIT_FIFOEN()
3259 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT_FIFOEN()
3262 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_8BIT_FIFOEN()
3265 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT_FIFOEN()
3269 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_8BIT_FIFOEN()
3271 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT_FIFOEN()
3272 husart->pTxBuffPtr++; in USART_TxISR_8BIT_FIFOEN()
3273 husart->TxXferCount--; in USART_TxISR_8BIT_FIFOEN()
3293 static void USART_TxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_TxISR_16BIT_FIFOEN() argument
3295 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT_FIFOEN()
3303 for (nb_tx_data = husart->NbTxDataToProcess ; nb_tx_data > 0U ; nb_tx_data--) in USART_TxISR_16BIT_FIFOEN()
3305 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT_FIFOEN()
3308 __HAL_USART_DISABLE_IT(husart, USART_IT_TXFT); in USART_TxISR_16BIT_FIFOEN()
3311 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT_FIFOEN()
3315 else if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXFNF) == SET) in USART_TxISR_16BIT_FIFOEN()
3317 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT_FIFOEN()
3318 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT_FIFOEN()
3319 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT_FIFOEN()
3320 husart->TxXferCount--; in USART_TxISR_16BIT_FIFOEN()
3337 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
3340 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
3343 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
3346 husart->TxISR = NULL; in USART_EndTransmit_IT()
3348 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
3351 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
3352 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
3355 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3359 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
3362 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
3365 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
3368 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
3372 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3375 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
3394 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
3396 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
3398 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
3406 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
3407 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
3408 husart->RxXferCount--; in USART_RxISR_8BIT()
3410 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
3414 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3416 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
3420 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
3423 husart->RxISR = NULL; in USART_RxISR_8BIT()
3427 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT()
3431 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
3437 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT()
3439 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT()
3440 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT()
3445 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3449 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3452 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3456 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && 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()
3482 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT()
3488 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3506 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3508 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3511 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3519 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3520 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3521 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3522 husart->RxXferCount--; in USART_RxISR_16BIT()
3524 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3528 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3530 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3534 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3537 husart->RxISR = NULL; in USART_RxISR_16BIT()
3541 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT()
3545 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3551 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT()
3553 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT()
3554 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT()
3559 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3563 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3566 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3570 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3574 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3579 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3583 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3586 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3596 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT()
3602 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()
3621 static void USART_RxISR_8BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_8BIT_FIFOEN() argument
3623 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT_FIFOEN()
3626 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT_FIFOEN()
3634 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_8BIT_FIFOEN()
3636 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_8BIT_FIFOEN()
3638 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in USART_RxISR_8BIT_FIFOEN()
3639 husart->pRxBuffPtr++; in USART_RxISR_8BIT_FIFOEN()
3640 husart->RxXferCount--; in USART_RxISR_8BIT_FIFOEN()
3642 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT_FIFOEN()
3645 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_8BIT_FIFOEN()
3649 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_8BIT_FIFOEN()
3652 husart->RxISR = NULL; in USART_RxISR_8BIT_FIFOEN()
3655 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_8BIT_FIFOEN()
3656 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT_FIFOEN()
3662 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_8BIT_FIFOEN()
3664 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_8BIT_FIFOEN()
3665 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3670 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3675 husart->RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3678 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3681 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT_FIFOEN()
3686 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT_FIFOEN()
3691 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3694 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT_FIFOEN()
3704 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3710 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3723 rxdatacount = husart->RxXferCount; in USART_RxISR_8BIT_FIFOEN()
3724 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_8BIT_FIFOEN()
3727 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_8BIT_FIFOEN()
3730 husart->RxISR = USART_RxISR_8BIT; in USART_RxISR_8BIT_FIFOEN()
3733 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_8BIT_FIFOEN()
3736 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
3738 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_8BIT_FIFOEN()
3740 if ((husart->TxXferCount == 0U) && in USART_RxISR_8BIT_FIFOEN()
3745 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT_FIFOEN()
3752 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_8BIT_FIFOEN()
3765 static void USART_RxISR_16BIT_FIFOEN(USART_HandleTypeDef *husart) in USART_RxISR_16BIT_FIFOEN() argument
3767 HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT_FIFOEN()
3771 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT_FIFOEN()
3779 for (nb_rx_data = husart->NbRxDataToProcess ; nb_rx_data > 0U ; nb_rx_data--) in USART_RxISR_16BIT_FIFOEN()
3781 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXFNE) == SET) in USART_RxISR_16BIT_FIFOEN()
3783 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT_FIFOEN()
3784 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT_FIFOEN()
3785 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT_FIFOEN()
3786 husart->RxXferCount--; in USART_RxISR_16BIT_FIFOEN()
3788 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT_FIFOEN()
3791 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_RxISR_16BIT_FIFOEN()
3795 CLEAR_BIT(husart->Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE)); in USART_RxISR_16BIT_FIFOEN()
3798 husart->RxISR = NULL; in USART_RxISR_16BIT_FIFOEN()
3801 txftie = READ_BIT(husart->Instance->CR3, USART_CR3_TXFTIE); in USART_RxISR_16BIT_FIFOEN()
3802 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT_FIFOEN()
3808 if (husart->SlaveMode == USART_SLAVEMODE_ENABLE) in USART_RxISR_16BIT_FIFOEN()
3810 __HAL_USART_CLEAR_UDRFLAG(husart); in USART_RxISR_16BIT_FIFOEN()
3811 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()
3816 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3821 husart->RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3824 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3827 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT_FIFOEN()
3832 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT_FIFOEN()
3837 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3840 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT_FIFOEN()
3850 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3856 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3869 rxdatacount = husart->RxXferCount; in USART_RxISR_16BIT_FIFOEN()
3870 if (((rxdatacount != 0U)) && (rxdatacount < husart->NbRxDataToProcess)) in USART_RxISR_16BIT_FIFOEN()
3873 CLEAR_BIT(husart->Instance->CR3, USART_CR3_RXFTIE); in USART_RxISR_16BIT_FIFOEN()
3876 husart->RxISR = USART_RxISR_16BIT; in USART_RxISR_16BIT_FIFOEN()
3879 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE_RXFNEIE); in USART_RxISR_16BIT_FIFOEN()
3882 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
3884 (husart->SlaveMode == USART_SLAVEMODE_DISABLE)) in USART_RxISR_16BIT_FIFOEN()
3886 if ((husart->TxXferCount == 0U) && in USART_RxISR_16BIT_FIFOEN()
3891 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT_FIFOEN()
3898 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_RxISR_16BIT_FIFOEN()