Lines Matching refs:husart

174 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart);
176 static void USART_EndTransfer(USART_HandleTypeDef *husart);
185 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F…
187 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart);
188 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart);
189 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart);
190 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart);
191 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart);
192 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart);
193 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart);
274 HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart) in HAL_USART_Init() argument
277 if (husart == NULL) in HAL_USART_Init()
283 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_Init()
285 if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_Init()
288 husart->Lock = HAL_UNLOCKED; in HAL_USART_Init()
291 USART_InitCallbacksToDefault(husart); in HAL_USART_Init()
293 if (husart->MspInitCallback == NULL) in HAL_USART_Init()
295 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_Init()
299 husart->MspInitCallback(husart); in HAL_USART_Init()
302 HAL_USART_MspInit(husart); in HAL_USART_Init()
306 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_Init()
309 __HAL_USART_DISABLE(husart); in HAL_USART_Init()
312 if (USART_SetConfig(husart) == HAL_ERROR) in HAL_USART_Init()
321 husart->Instance->CR2 &= ~USART_CR2_LINEN; in HAL_USART_Init()
322 husart->Instance->CR3 &= ~(USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN); in HAL_USART_Init()
325 __HAL_USART_ENABLE(husart); in HAL_USART_Init()
328 return (USART_CheckIdleState(husart)); in HAL_USART_Init()
336 HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart) in HAL_USART_DeInit() argument
339 if (husart == NULL) in HAL_USART_DeInit()
345 assert_param(IS_USART_INSTANCE(husart->Instance)); in HAL_USART_DeInit()
347 husart->State = HAL_USART_STATE_BUSY; in HAL_USART_DeInit()
349 husart->Instance->CR1 = 0x0U; in HAL_USART_DeInit()
350 husart->Instance->CR2 = 0x0U; in HAL_USART_DeInit()
351 husart->Instance->CR3 = 0x0U; in HAL_USART_DeInit()
354 if (husart->MspDeInitCallback == NULL) in HAL_USART_DeInit()
356 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_DeInit()
359 husart->MspDeInitCallback(husart); in HAL_USART_DeInit()
362 HAL_USART_MspDeInit(husart); in HAL_USART_DeInit()
365 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_DeInit()
366 husart->State = HAL_USART_STATE_RESET; in HAL_USART_DeInit()
369 __HAL_UNLOCK(husart); in HAL_USART_DeInit()
379 __weak void HAL_USART_MspInit(USART_HandleTypeDef *husart) in HAL_USART_MspInit() argument
382 UNUSED(husart); in HAL_USART_MspInit()
394 __weak void HAL_USART_MspDeInit(USART_HandleTypeDef *husart) in HAL_USART_MspDeInit() argument
397 UNUSED(husart); in HAL_USART_MspDeInit()
425 HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeD… in HAL_USART_RegisterCallback() argument
433 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
438 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_RegisterCallback()
443 husart->TxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
447 husart->TxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
451 husart->RxHalfCpltCallback = pCallback; in HAL_USART_RegisterCallback()
455 husart->RxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
459 husart->TxRxCpltCallback = pCallback; in HAL_USART_RegisterCallback()
463 husart->ErrorCallback = pCallback; in HAL_USART_RegisterCallback()
467 husart->AbortCpltCallback = pCallback; in HAL_USART_RegisterCallback()
472 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
476 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
481 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
488 else if (husart->State == HAL_USART_STATE_RESET) in HAL_USART_RegisterCallback()
493 husart->MspInitCallback = pCallback; in HAL_USART_RegisterCallback()
497 husart->MspDeInitCallback = pCallback; in HAL_USART_RegisterCallback()
502 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
512 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_RegisterCallback()
540 HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTyp… in HAL_USART_UnRegisterCallback() argument
544 if (HAL_USART_STATE_READY == husart->State) in HAL_USART_UnRegisterCallback()
549husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCpl… in HAL_USART_UnRegisterCallback()
553husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in HAL_USART_UnRegisterCallback()
557husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in HAL_USART_UnRegisterCallback()
561husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in HAL_USART_UnRegisterCallback()
565husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in HAL_USART_UnRegisterCallback()
569husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in HAL_USART_UnRegisterCallback()
573husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in HAL_USART_UnRegisterCallback()
578husart->MspInitCallback = HAL_USART_MspInit; /* Legacy weak MspInitCal… in HAL_USART_UnRegisterCallback()
582husart->MspDeInitCallback = HAL_USART_MspDeInit; /* Legacy weak MspDeInitC… in HAL_USART_UnRegisterCallback()
587 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
594 else if (HAL_USART_STATE_RESET == husart->State) in HAL_USART_UnRegisterCallback()
599 husart->MspInitCallback = HAL_USART_MspInit; in HAL_USART_UnRegisterCallback()
603 husart->MspDeInitCallback = HAL_USART_MspDeInit; in HAL_USART_UnRegisterCallback()
608 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
618 husart->ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK; in HAL_USART_UnRegisterCallback()
724 HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t … in HAL_USART_Transmit() argument
731 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit()
739 __HAL_LOCK(husart); in HAL_USART_Transmit()
741 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit()
742 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit()
747 husart->TxXferSize = Size; in HAL_USART_Transmit()
748 husart->TxXferCount = Size; in HAL_USART_Transmit()
751 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit()
763 while (husart->TxXferCount > 0U) in HAL_USART_Transmit()
765 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
771 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & 0x01FFU); in HAL_USART_Transmit()
776 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & 0xFFU); in HAL_USART_Transmit()
780 husart->TxXferCount--; in HAL_USART_Transmit()
783 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Transmit()
789 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit()
792 __HAL_USART_CLEAR_OREFLAG(husart); in HAL_USART_Transmit()
793 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
794 __HAL_USART_SEND_REQ(husart, USART_TXDATA_FLUSH_REQUEST); in HAL_USART_Transmit()
797 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit()
800 __HAL_UNLOCK(husart); in HAL_USART_Transmit()
822 HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, u… in HAL_USART_Receive() argument
829 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive()
837 __HAL_LOCK(husart); in HAL_USART_Receive()
839 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive()
840 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive()
845 husart->RxXferSize = Size; in HAL_USART_Receive()
846 husart->RxXferCount = Size; in HAL_USART_Receive()
849 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive()
850 uhMask = husart->Mask; in HAL_USART_Receive()
853 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive()
865 while (husart->RxXferCount > 0U) in HAL_USART_Receive()
872 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
876 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x0FF); in HAL_USART_Receive()
880 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_Receive()
887 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_Receive()
892 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_Receive()
896 husart->RxXferCount--; in HAL_USART_Receive()
902 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive()
905 __HAL_UNLOCK(husart); in HAL_USART_Receive()
927 HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, ui… in HAL_USART_TransmitReceive() argument
938 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive()
946 __HAL_LOCK(husart); in HAL_USART_TransmitReceive()
948 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive()
949 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_TransmitReceive()
954 husart->RxXferSize = Size; in HAL_USART_TransmitReceive()
955 husart->TxXferSize = Size; in HAL_USART_TransmitReceive()
956 husart->TxXferCount = Size; in HAL_USART_TransmitReceive()
957 husart->RxXferCount = Size; in HAL_USART_TransmitReceive()
960 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive()
961 uhMask = husart->Mask; in HAL_USART_TransmitReceive()
964 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive()
979 if (husart->TxXferCount == 0x01U) in HAL_USART_TransmitReceive()
982 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
988 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
993 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
997 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1002 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1003 while ((husart->TxXferCount > 0U) || (rxdatacount > 0U)) in HAL_USART_TransmitReceive()
1005 if (husart->TxXferCount > 0U) in HAL_USART_TransmitReceive()
1008 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1014 husart->Instance->TDR = (uint16_t)(*ptxdata16bits & uhMask); in HAL_USART_TransmitReceive()
1019 husart->Instance->TDR = (uint8_t)(*ptxdata8bits & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1023 husart->TxXferCount--; in HAL_USART_TransmitReceive()
1026 if (husart->RxXferCount > 0U) in HAL_USART_TransmitReceive()
1029 … if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) in HAL_USART_TransmitReceive()
1036 *prxdata16bits = (uint16_t)(husart->Instance->RDR & uhMask); in HAL_USART_TransmitReceive()
1041 *prxdata8bits = (uint8_t)(husart->Instance->RDR & (uint8_t)(uhMask & 0xFFU)); in HAL_USART_TransmitReceive()
1045 husart->RxXferCount--; in HAL_USART_TransmitReceive()
1047 rxdatacount = husart->RxXferCount; in HAL_USART_TransmitReceive()
1051 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive()
1054 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive()
1074 HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16… in HAL_USART_Transmit_IT() argument
1076 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_IT()
1084 __HAL_LOCK(husart); in HAL_USART_Transmit_IT()
1086 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_IT()
1087 husart->TxXferSize = Size; in HAL_USART_Transmit_IT()
1088 husart->TxXferCount = Size; in HAL_USART_Transmit_IT()
1089 husart->TxISR = NULL; in HAL_USART_Transmit_IT()
1091 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_IT()
1092 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_IT()
1102 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Transmit_IT()
1104 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_Transmit_IT()
1108 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_Transmit_IT()
1112 __HAL_UNLOCK(husart); in HAL_USART_Transmit_IT()
1115 __HAL_USART_ENABLE_IT(husart, USART_IT_TXE); in HAL_USART_Transmit_IT()
1137 HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size) in HAL_USART_Receive_IT() argument
1140 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_IT()
1148 __HAL_LOCK(husart); in HAL_USART_Receive_IT()
1150 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_IT()
1151 husart->RxXferSize = Size; in HAL_USART_Receive_IT()
1152 husart->RxXferCount = Size; in HAL_USART_Receive_IT()
1153 husart->RxISR = NULL; in HAL_USART_Receive_IT()
1155 USART_MASK_COMPUTATION(husart); in HAL_USART_Receive_IT()
1157 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_IT()
1158 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_IT()
1161 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_IT()
1165 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_Receive_IT()
1167 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_Receive_IT()
1171 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_Receive_IT()
1175 __HAL_UNLOCK(husart); in HAL_USART_Receive_IT()
1178 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_IT()
1180 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1184 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_Receive_IT()
1192 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in HAL_USART_Receive_IT()
1215 HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData,… in HAL_USART_TransmitReceive_IT() argument
1219 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_IT()
1227 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_IT()
1229 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_IT()
1230 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1231 husart->RxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1232 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_IT()
1233 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_IT()
1234 husart->TxXferCount = Size; in HAL_USART_TransmitReceive_IT()
1237 USART_MASK_COMPUTATION(husart); in HAL_USART_TransmitReceive_IT()
1239 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_IT()
1240 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_IT()
1243 …if ((husart->Init.WordLength == USART_WORDLENGTH_9B) && (husart->Init.Parity == USART_PARITY_NONE)) in HAL_USART_TransmitReceive_IT()
1245 husart->TxISR = USART_TxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1246 husart->RxISR = USART_RxISR_16BIT; in HAL_USART_TransmitReceive_IT()
1250 husart->TxISR = USART_TxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1251 husart->RxISR = USART_RxISR_8BIT; in HAL_USART_TransmitReceive_IT()
1255 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_IT()
1258 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_IT()
1261 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_IT()
1263 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1267 SET_BIT(husart->Instance->CR1, USART_CR1_RXNEIE); in HAL_USART_TransmitReceive_IT()
1271 SET_BIT(husart->Instance->CR1, USART_CR1_TXEIE); in HAL_USART_TransmitReceive_IT()
1292 HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint1… in HAL_USART_Transmit_DMA() argument
1297 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Transmit_DMA()
1305 __HAL_LOCK(husart); in HAL_USART_Transmit_DMA()
1307 husart->pTxBuffPtr = pTxData; in HAL_USART_Transmit_DMA()
1308 husart->TxXferSize = Size; in HAL_USART_Transmit_DMA()
1309 husart->TxXferCount = Size; in HAL_USART_Transmit_DMA()
1311 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Transmit_DMA()
1312 husart->State = HAL_USART_STATE_BUSY_TX; in HAL_USART_Transmit_DMA()
1314 if (husart->hdmatx != NULL) in HAL_USART_Transmit_DMA()
1317 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_Transmit_DMA()
1320 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_Transmit_DMA()
1323 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_Transmit_DMA()
1327 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_Transmit_DMA()
1333 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_Transmit_DMA()
1336 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1340 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Transmit_DMA()
1347 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Transmit_DMA()
1350 __HAL_UNLOCK(husart); in HAL_USART_Transmit_DMA()
1353 husart->State = HAL_USART_STATE_READY; in HAL_USART_Transmit_DMA()
1377 HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Siz… in HAL_USART_Receive_DMA() argument
1383 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_Receive_DMA()
1391 __HAL_LOCK(husart); in HAL_USART_Receive_DMA()
1393 husart->pRxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1394 husart->RxXferSize = Size; in HAL_USART_Receive_DMA()
1395 husart->pTxBuffPtr = pRxData; in HAL_USART_Receive_DMA()
1396 husart->TxXferSize = Size; in HAL_USART_Receive_DMA()
1398 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Receive_DMA()
1399 husart->State = HAL_USART_STATE_BUSY_RX; in HAL_USART_Receive_DMA()
1401 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1404 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_Receive_DMA()
1407 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_Receive_DMA()
1410 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_Receive_DMA()
1413 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(uint32_t *)tmp, Size… in HAL_USART_Receive_DMA()
1422 if (husart->hdmatx != NULL) in HAL_USART_Receive_DMA()
1424 husart->hdmatx->XferErrorCallback = NULL; in HAL_USART_Receive_DMA()
1425 husart->hdmatx->XferHalfCpltCallback = NULL; in HAL_USART_Receive_DMA()
1426 husart->hdmatx->XferCpltCallback = NULL; in HAL_USART_Receive_DMA()
1427 …status = HAL_DMA_Start_IT(husart->hdmatx, *(uint32_t *)tmp, (uint32_t)&husart->Instance->TDR, Size… in HAL_USART_Receive_DMA()
1434 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1436 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_Receive_DMA()
1439 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_Receive_DMA()
1443 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Receive_DMA()
1447 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Receive_DMA()
1451 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Receive_DMA()
1457 if (husart->hdmarx != NULL) in HAL_USART_Receive_DMA()
1459 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_Receive_DMA()
1466 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Receive_DMA()
1469 __HAL_UNLOCK(husart); in HAL_USART_Receive_DMA()
1472 husart->State = HAL_USART_STATE_READY; in HAL_USART_Receive_DMA()
1495 HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData… in HAL_USART_TransmitReceive_DMA() argument
1501 if (husart->State == HAL_USART_STATE_READY) in HAL_USART_TransmitReceive_DMA()
1509 __HAL_LOCK(husart); in HAL_USART_TransmitReceive_DMA()
1511 husart->pRxBuffPtr = pRxData; in HAL_USART_TransmitReceive_DMA()
1512 husart->RxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1513 husart->pTxBuffPtr = pTxData; in HAL_USART_TransmitReceive_DMA()
1514 husart->TxXferSize = Size; in HAL_USART_TransmitReceive_DMA()
1516 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_TransmitReceive_DMA()
1517 husart->State = HAL_USART_STATE_BUSY_TX_RX; in HAL_USART_TransmitReceive_DMA()
1519 if ((husart->hdmarx != NULL) && (husart->hdmatx != NULL)) in HAL_USART_TransmitReceive_DMA()
1522 husart->hdmarx->XferCpltCallback = USART_DMAReceiveCplt; in HAL_USART_TransmitReceive_DMA()
1525 husart->hdmarx->XferHalfCpltCallback = USART_DMARxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1528 husart->hdmatx->XferCpltCallback = USART_DMATransmitCplt; in HAL_USART_TransmitReceive_DMA()
1531 husart->hdmatx->XferHalfCpltCallback = USART_DMATxHalfCplt; in HAL_USART_TransmitReceive_DMA()
1534 husart->hdmatx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1537 husart->hdmarx->XferErrorCallback = USART_DMAError; in HAL_USART_TransmitReceive_DMA()
1541 …status = HAL_DMA_Start_IT(husart->hdmarx, (uint32_t)&husart->Instance->RDR, *(const uint32_t *)tmp… in HAL_USART_TransmitReceive_DMA()
1547 …status = HAL_DMA_Start_IT(husart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&husart->Instance->TDR… in HAL_USART_TransmitReceive_DMA()
1558 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1560 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_TransmitReceive_DMA()
1563 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_TransmitReceive_DMA()
1567 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_TransmitReceive_DMA()
1570 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_TCF); in HAL_USART_TransmitReceive_DMA()
1574 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_TransmitReceive_DMA()
1578 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_TransmitReceive_DMA()
1584 if (husart->hdmarx != NULL) in HAL_USART_TransmitReceive_DMA()
1586 status = HAL_DMA_Abort(husart->hdmarx); in HAL_USART_TransmitReceive_DMA()
1593 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_TransmitReceive_DMA()
1596 __HAL_UNLOCK(husart); in HAL_USART_TransmitReceive_DMA()
1599 husart->State = HAL_USART_STATE_READY; in HAL_USART_TransmitReceive_DMA()
1615 HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart) in HAL_USART_DMAPause() argument
1617 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAPause()
1620 __HAL_LOCK(husart); in HAL_USART_DMAPause()
1622 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) && in HAL_USART_DMAPause()
1626 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1631 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_DMAPause()
1634 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAPause()
1636 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_DMAPause()
1639 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAPause()
1640 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAPause()
1643 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAPause()
1652 __HAL_UNLOCK(husart); in HAL_USART_DMAPause()
1662 HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart) in HAL_USART_DMAResume() argument
1664 const HAL_USART_StateTypeDef state = husart->State; in HAL_USART_DMAResume()
1667 __HAL_LOCK(husart); in HAL_USART_DMAResume()
1672 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1678 __HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF); in HAL_USART_DMAResume()
1681 if (husart->Init.Parity != USART_PARITY_NONE) in HAL_USART_DMAResume()
1683 SET_BIT(husart->Instance->CR1, USART_CR1_PEIE); in HAL_USART_DMAResume()
1685 SET_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_DMAResume()
1688 SET_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAResume()
1691 SET_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAResume()
1699 __HAL_UNLOCK(husart); in HAL_USART_DMAResume()
1709 HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart) in HAL_USART_DMAStop() argument
1719 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_DMAStop()
1720 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_DMAStop()
1723 if (husart->hdmatx != NULL) in HAL_USART_DMAStop()
1725 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_DMAStop()
1727 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1730 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1737 if (husart->hdmarx != NULL) in HAL_USART_DMAStop()
1739 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_DMAStop()
1741 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_DMAStop()
1744 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_DMAStop()
1751 USART_EndTransfer(husart); in HAL_USART_DMAStop()
1752 husart->State = HAL_USART_STATE_READY; in HAL_USART_DMAStop()
1769 HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart) in HAL_USART_Abort() argument
1771 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort()
1772 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort()
1775 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort()
1778 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort()
1781 if (husart->hdmatx != NULL) in HAL_USART_Abort()
1785 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort()
1787 if (HAL_DMA_Abort(husart->hdmatx) != HAL_OK) in HAL_USART_Abort()
1789 if (HAL_DMA_GetError(husart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1792 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1801 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort()
1804 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort()
1807 if (husart->hdmarx != NULL) in HAL_USART_Abort()
1811 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort()
1813 if (HAL_DMA_Abort(husart->hdmarx) != HAL_OK) in HAL_USART_Abort()
1815 if (HAL_DMA_GetError(husart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) in HAL_USART_Abort()
1818 husart->ErrorCode = HAL_USART_ERROR_DMA; in HAL_USART_Abort()
1827 husart->TxXferCount = 0U; in HAL_USART_Abort()
1828 husart->RxXferCount = 0U; in HAL_USART_Abort()
1831 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort()
1835 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort()
1838 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort()
1841 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort()
1860 HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart) in HAL_USART_Abort_IT() argument
1864 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in HAL_USART_Abort_IT()
1865 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in HAL_USART_Abort_IT()
1870 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1874 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1876 husart->hdmatx->XferAbortCallback = USART_DMATxAbortCallback; in HAL_USART_Abort_IT()
1880 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1884 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1888 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1890 husart->hdmarx->XferAbortCallback = USART_DMARxAbortCallback; in HAL_USART_Abort_IT()
1894 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1899 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAT)) in HAL_USART_Abort_IT()
1902 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in HAL_USART_Abort_IT()
1905 if (husart->hdmatx != NULL) in HAL_USART_Abort_IT()
1911 if (HAL_DMA_Abort_IT(husart->hdmatx) != HAL_OK) in HAL_USART_Abort_IT()
1913 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1923 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_Abort_IT()
1926 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in HAL_USART_Abort_IT()
1929 if (husart->hdmarx != NULL) in HAL_USART_Abort_IT()
1935 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_Abort_IT()
1937 husart->hdmarx->XferAbortCallback = NULL; in HAL_USART_Abort_IT()
1951 husart->TxXferCount = 0U; in HAL_USART_Abort_IT()
1952 husart->RxXferCount = 0U; in HAL_USART_Abort_IT()
1955 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_Abort_IT()
1958 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in HAL_USART_Abort_IT()
1962 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in HAL_USART_Abort_IT()
1965 husart->State = HAL_USART_STATE_READY; in HAL_USART_Abort_IT()
1970 husart->AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1973 HAL_USART_AbortCpltCallback(husart); in HAL_USART_Abort_IT()
1985 void HAL_USART_IRQHandler(USART_HandleTypeDef *husart) in HAL_USART_IRQHandler() argument
1987 uint32_t isrflags = READ_REG(husart->Instance->ISR); in HAL_USART_IRQHandler()
1988 uint32_t cr1its = READ_REG(husart->Instance->CR1); in HAL_USART_IRQHandler()
1989 uint32_t cr3its = READ_REG(husart->Instance->CR3); in HAL_USART_IRQHandler()
2002 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2004 husart->RxISR(husart); in HAL_USART_IRQHandler()
2018 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_PEF); in HAL_USART_IRQHandler()
2020 husart->ErrorCode |= HAL_USART_ERROR_PE; in HAL_USART_IRQHandler()
2026 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_FEF); in HAL_USART_IRQHandler()
2028 husart->ErrorCode |= HAL_USART_ERROR_FE; in HAL_USART_IRQHandler()
2034 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_NEF); in HAL_USART_IRQHandler()
2036 husart->ErrorCode |= HAL_USART_ERROR_NE; in HAL_USART_IRQHandler()
2044 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_OREF); in HAL_USART_IRQHandler()
2046 husart->ErrorCode |= HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2052 __HAL_USART_CLEAR_IT(husart, USART_CLEAR_RTOF); in HAL_USART_IRQHandler()
2054 husart->ErrorCode |= HAL_USART_ERROR_RTO; in HAL_USART_IRQHandler()
2059 if (husart->ErrorCode != HAL_USART_ERROR_NONE) in HAL_USART_IRQHandler()
2065 if (husart->RxISR != NULL) in HAL_USART_IRQHandler()
2067 husart->RxISR(husart); in HAL_USART_IRQHandler()
2073 errorcode = husart->ErrorCode & HAL_USART_ERROR_ORE; in HAL_USART_IRQHandler()
2074 if ((HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) || in HAL_USART_IRQHandler()
2080 USART_EndTransfer(husart); in HAL_USART_IRQHandler()
2083 if (HAL_IS_BIT_SET(husart->Instance->CR3, USART_CR3_DMAR)) in HAL_USART_IRQHandler()
2086 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR | USART_CR3_DMAR); in HAL_USART_IRQHandler()
2089 if (husart->hdmatx != NULL) in HAL_USART_IRQHandler()
2093 husart->hdmatx->XferAbortCallback = NULL; in HAL_USART_IRQHandler()
2096 (void)HAL_DMA_Abort_IT(husart->hdmatx); in HAL_USART_IRQHandler()
2100 if (husart->hdmarx != NULL) in HAL_USART_IRQHandler()
2104 husart->hdmarx->XferAbortCallback = USART_DMAAbortOnError; in HAL_USART_IRQHandler()
2107 if (HAL_DMA_Abort_IT(husart->hdmarx) != HAL_OK) in HAL_USART_IRQHandler()
2110 husart->hdmarx->XferAbortCallback(husart->hdmarx); in HAL_USART_IRQHandler()
2118 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2121 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2130 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2133 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2143 husart->ErrorCallback(husart); in HAL_USART_IRQHandler()
2146 HAL_USART_ErrorCallback(husart); in HAL_USART_IRQHandler()
2148 husart->ErrorCode = HAL_USART_ERROR_NONE; in HAL_USART_IRQHandler()
2160 if (husart->TxISR != NULL) in HAL_USART_IRQHandler()
2162 husart->TxISR(husart); in HAL_USART_IRQHandler()
2170 USART_EndTransmit_IT(husart); in HAL_USART_IRQHandler()
2181 __weak void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxCpltCallback() argument
2184 UNUSED(husart); in HAL_USART_TxCpltCallback()
2196 __weak void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxHalfCpltCallback() argument
2199 UNUSED(husart); in HAL_USART_TxHalfCpltCallback()
2211 __weak void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxCpltCallback() argument
2214 UNUSED(husart); in HAL_USART_RxCpltCallback()
2226 __weak void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_RxHalfCpltCallback() argument
2229 UNUSED(husart); in HAL_USART_RxHalfCpltCallback()
2241 __weak void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_TxRxCpltCallback() argument
2244 UNUSED(husart); in HAL_USART_TxRxCpltCallback()
2256 __weak void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart) in HAL_USART_ErrorCallback() argument
2259 UNUSED(husart); in HAL_USART_ErrorCallback()
2271 __weak void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart) in HAL_USART_AbortCpltCallback() argument
2274 UNUSED(husart); in HAL_USART_AbortCpltCallback()
2308 HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart) in HAL_USART_GetState() argument
2310 return husart->State; in HAL_USART_GetState()
2319 uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart) in HAL_USART_GetError() argument
2321 return husart->ErrorCode; in HAL_USART_GetError()
2342 void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart) in USART_InitCallbacksToDefault() argument
2345husart->TxHalfCpltCallback = HAL_USART_TxHalfCpltCallback; /* Legacy weak TxHalfCplt… in USART_InitCallbacksToDefault()
2346husart->TxCpltCallback = HAL_USART_TxCpltCallback; /* Legacy weak TxCpltCall… in USART_InitCallbacksToDefault()
2347husart->RxHalfCpltCallback = HAL_USART_RxHalfCpltCallback; /* Legacy weak RxHalfCplt… in USART_InitCallbacksToDefault()
2348husart->RxCpltCallback = HAL_USART_RxCpltCallback; /* Legacy weak RxCpltCall… in USART_InitCallbacksToDefault()
2349husart->TxRxCpltCallback = HAL_USART_TxRxCpltCallback; /* Legacy weak TxRxCpltCa… in USART_InitCallbacksToDefault()
2350husart->ErrorCallback = HAL_USART_ErrorCallback; /* Legacy weak ErrorCallb… in USART_InitCallbacksToDefault()
2351husart->AbortCpltCallback = HAL_USART_AbortCpltCallback; /* Legacy weak AbortCpltC… in USART_InitCallbacksToDefault()
2360 static void USART_EndTransfer(USART_HandleTypeDef *husart) in USART_EndTransfer() argument
2363 …CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_… in USART_EndTransfer()
2364 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_EndTransfer()
2367 husart->State = HAL_USART_STATE_READY; in USART_EndTransfer()
2377 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATransmitCplt() local
2382 husart->TxXferCount = 0U; in USART_DMATransmitCplt()
2384 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2388 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMATransmitCplt()
2391 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_DMATransmitCplt()
2397 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_DMATransmitCplt()
2401 husart->TxCpltCallback(husart); in USART_DMATransmitCplt()
2404 HAL_USART_TxCpltCallback(husart); in USART_DMATransmitCplt()
2417 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxHalfCplt() local
2421 husart->TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2424 HAL_USART_TxHalfCpltCallback(husart); in USART_DMATxHalfCplt()
2435 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAReceiveCplt() local
2440 husart->RxXferCount = 0U; in USART_DMAReceiveCplt()
2443 CLEAR_BIT(husart->Instance->CR1, USART_CR1_PEIE); in USART_DMAReceiveCplt()
2444 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_DMAReceiveCplt()
2448 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAR); in USART_DMAReceiveCplt()
2451 CLEAR_BIT(husart->Instance->CR3, USART_CR3_DMAT); in USART_DMAReceiveCplt()
2453 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2457 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2460 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2468 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2471 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2474 husart->State = HAL_USART_STATE_READY; in USART_DMAReceiveCplt()
2479 if (husart->State == HAL_USART_STATE_BUSY_RX) in USART_DMAReceiveCplt()
2483 husart->RxCpltCallback(husart); in USART_DMAReceiveCplt()
2486 HAL_USART_RxCpltCallback(husart); in USART_DMAReceiveCplt()
2494 husart->TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2497 HAL_USART_TxRxCpltCallback(husart); in USART_DMAReceiveCplt()
2510 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxHalfCplt() local
2514 husart->RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2517 HAL_USART_RxHalfCpltCallback(husart); in USART_DMARxHalfCplt()
2528 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAError() local
2530 husart->RxXferCount = 0U; in USART_DMAError()
2531 husart->TxXferCount = 0U; in USART_DMAError()
2532 USART_EndTransfer(husart); in USART_DMAError()
2534 husart->ErrorCode |= HAL_USART_ERROR_DMA; in USART_DMAError()
2535 husart->State = HAL_USART_STATE_READY; in USART_DMAError()
2539 husart->ErrorCallback(husart); in USART_DMAError()
2542 HAL_USART_ErrorCallback(husart); in USART_DMAError()
2554 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMAAbortOnError() local
2555 husart->RxXferCount = 0U; in USART_DMAAbortOnError()
2556 husart->TxXferCount = 0U; in USART_DMAAbortOnError()
2560 husart->ErrorCallback(husart); in USART_DMAAbortOnError()
2563 HAL_USART_ErrorCallback(husart); in USART_DMAAbortOnError()
2577 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMATxAbortCallback() local
2579 husart->hdmatx->XferAbortCallback = NULL; in USART_DMATxAbortCallback()
2582 if (husart->hdmarx != NULL) in USART_DMATxAbortCallback()
2584 if (husart->hdmarx->XferAbortCallback != NULL) in USART_DMATxAbortCallback()
2591 husart->TxXferCount = 0U; in USART_DMATxAbortCallback()
2592 husart->RxXferCount = 0U; in USART_DMATxAbortCallback()
2595 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMATxAbortCallback()
2598 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMATxAbortCallback()
2601 husart->State = HAL_USART_STATE_READY; in USART_DMATxAbortCallback()
2606 husart->AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2609 HAL_USART_AbortCpltCallback(husart); in USART_DMATxAbortCallback()
2625 USART_HandleTypeDef *husart = (USART_HandleTypeDef *)(hdma->Parent); in USART_DMARxAbortCallback() local
2627 husart->hdmarx->XferAbortCallback = NULL; in USART_DMARxAbortCallback()
2630 if (husart->hdmatx != NULL) in USART_DMARxAbortCallback()
2632 if (husart->hdmatx->XferAbortCallback != NULL) in USART_DMARxAbortCallback()
2639 husart->TxXferCount = 0U; in USART_DMARxAbortCallback()
2640 husart->RxXferCount = 0U; in USART_DMARxAbortCallback()
2643 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_DMARxAbortCallback()
2646 …__HAL_USART_CLEAR_FLAG(husart, USART_CLEAR_OREF | USART_CLEAR_NEF | USART_CLEAR_PEF | USART_CLEAR_… in USART_DMARxAbortCallback()
2649 husart->State = HAL_USART_STATE_READY; in USART_DMARxAbortCallback()
2654 husart->AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2657 HAL_USART_AbortCpltCallback(husart); in USART_DMARxAbortCallback()
2672 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(USART_HandleTypeDef *husart, uint32_t Flag, F… in USART_WaitOnFlagUntilTimeout() argument
2676 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status) in USART_WaitOnFlagUntilTimeout()
2683 husart->State = HAL_USART_STATE_READY; in USART_WaitOnFlagUntilTimeout()
2686 __HAL_UNLOCK(husart); in USART_WaitOnFlagUntilTimeout()
2700 static HAL_StatusTypeDef USART_SetConfig(USART_HandleTypeDef *husart) in USART_SetConfig() argument
2710 assert_param(IS_USART_POLARITY(husart->Init.CLKPolarity)); in USART_SetConfig()
2711 assert_param(IS_USART_PHASE(husart->Init.CLKPhase)); in USART_SetConfig()
2712 assert_param(IS_USART_LASTBIT(husart->Init.CLKLastBit)); in USART_SetConfig()
2713 assert_param(IS_USART_BAUDRATE(husart->Init.BaudRate)); in USART_SetConfig()
2714 assert_param(IS_USART_WORD_LENGTH(husart->Init.WordLength)); in USART_SetConfig()
2715 assert_param(IS_USART_STOPBITS(husart->Init.StopBits)); in USART_SetConfig()
2716 assert_param(IS_USART_PARITY(husart->Init.Parity)); in USART_SetConfig()
2717 assert_param(IS_USART_MODE(husart->Init.Mode)); in USART_SetConfig()
2726 …tmpreg = (uint32_t)husart->Init.WordLength | husart->Init.Parity | husart->Init.Mode | USART_CR1_O… in USART_SetConfig()
2727 MODIFY_REG(husart->Instance->CR1, USART_CR1_FIELDS, tmpreg); in USART_SetConfig()
2736 tmpreg |= (uint32_t)husart->Init.CLKLastBit; in USART_SetConfig()
2737 tmpreg |= ((uint32_t)husart->Init.CLKPolarity | (uint32_t)husart->Init.CLKPhase); in USART_SetConfig()
2738 tmpreg |= (uint32_t)husart->Init.StopBits; in USART_SetConfig()
2739 MODIFY_REG(husart->Instance->CR2, USART_CR2_FIELDS, tmpreg); in USART_SetConfig()
2744 USART_GETCLOCKSOURCE(husart, clocksource); in USART_SetConfig()
2750 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2754 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2757 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(HSI_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2761 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(pclk, husart->Init.BaudRate)); in USART_SetConfig()
2764 usartdiv = (uint32_t)(USART_DIV_SAMPLING8(LSE_VALUE, husart->Init.BaudRate)); in USART_SetConfig()
2776 husart->Instance->BRR = brrtemp; in USART_SetConfig()
2785 husart->RxISR = NULL; in USART_SetConfig()
2786 husart->TxISR = NULL; in USART_SetConfig()
2796 static HAL_StatusTypeDef USART_CheckIdleState(USART_HandleTypeDef *husart) in USART_CheckIdleState() argument
2801 husart->ErrorCode = HAL_USART_ERROR_NONE; in USART_CheckIdleState()
2807 if ((husart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) in USART_CheckIdleState()
2810 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_TEACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2817 if ((husart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE) in USART_CheckIdleState()
2820 …if (USART_WaitOnFlagUntilTimeout(husart, USART_ISR_REACK, RESET, tickstart, USART_TEACK_REACK_TIME… in USART_CheckIdleState()
2828 husart->State = HAL_USART_STATE_READY; in USART_CheckIdleState()
2831 __HAL_UNLOCK(husart); in USART_CheckIdleState()
2845 static void USART_TxISR_8BIT(USART_HandleTypeDef *husart) in USART_TxISR_8BIT() argument
2847 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_8BIT()
2853 if (husart->TxXferCount == 0U) in USART_TxISR_8BIT()
2856 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_8BIT()
2859 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_8BIT()
2863 husart->Instance->TDR = (uint8_t)(*husart->pTxBuffPtr & (uint8_t)0xFF); in USART_TxISR_8BIT()
2864 husart->pTxBuffPtr++; in USART_TxISR_8BIT()
2865 husart->TxXferCount--; in USART_TxISR_8BIT()
2879 static void USART_TxISR_16BIT(USART_HandleTypeDef *husart) in USART_TxISR_16BIT() argument
2881 const HAL_USART_StateTypeDef state = husart->State; in USART_TxISR_16BIT()
2887 if (husart->TxXferCount == 0U) in USART_TxISR_16BIT()
2890 __HAL_USART_DISABLE_IT(husart, USART_IT_TXE); in USART_TxISR_16BIT()
2893 __HAL_USART_ENABLE_IT(husart, USART_IT_TC); in USART_TxISR_16BIT()
2897 tmp = (const uint16_t *) husart->pTxBuffPtr; in USART_TxISR_16BIT()
2898 husart->Instance->TDR = (uint16_t)(*tmp & 0x01FFU); in USART_TxISR_16BIT()
2899 husart->pTxBuffPtr += 2U; in USART_TxISR_16BIT()
2900 husart->TxXferCount--; in USART_TxISR_16BIT()
2912 static void USART_EndTransmit_IT(USART_HandleTypeDef *husart) in USART_EndTransmit_IT() argument
2915 __HAL_USART_DISABLE_IT(husart, USART_IT_TC); in USART_EndTransmit_IT()
2918 __HAL_USART_DISABLE_IT(husart, USART_IT_ERR); in USART_EndTransmit_IT()
2921 husart->TxISR = NULL; in USART_EndTransmit_IT()
2923 if (husart->State == HAL_USART_STATE_BUSY_TX) in USART_EndTransmit_IT()
2926 __HAL_USART_CLEAR_OREFLAG(husart); in USART_EndTransmit_IT()
2927 __HAL_USART_SEND_REQ(husart, USART_RXDATA_FLUSH_REQUEST); in USART_EndTransmit_IT()
2930 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
2934 husart->TxCpltCallback(husart); in USART_EndTransmit_IT()
2937 HAL_USART_TxCpltCallback(husart); in USART_EndTransmit_IT()
2940 else if (husart->RxXferCount == 0U) in USART_EndTransmit_IT()
2943 husart->State = HAL_USART_STATE_READY; in USART_EndTransmit_IT()
2947 husart->TxRxCpltCallback(husart); in USART_EndTransmit_IT()
2950 HAL_USART_TxRxCpltCallback(husart); in USART_EndTransmit_IT()
2968 static void USART_RxISR_8BIT(USART_HandleTypeDef *husart) in USART_RxISR_8BIT() argument
2970 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_8BIT()
2972 uint16_t uhMask = husart->Mask; in USART_RxISR_8BIT()
2977 *husart->pRxBuffPtr = (uint8_t)(husart->Instance->RDR & (uint8_t)uhMask); in USART_RxISR_8BIT()
2978 husart->pRxBuffPtr++; in USART_RxISR_8BIT()
2979 husart->RxXferCount--; in USART_RxISR_8BIT()
2981 if (husart->RxXferCount == 0U) in USART_RxISR_8BIT()
2984 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_8BIT()
2987 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_8BIT()
2990 husart->RxISR = NULL; in USART_RxISR_8BIT()
2993 txdatacount = husart->TxXferCount; in USART_RxISR_8BIT()
2999 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3003 husart->RxCpltCallback(husart); in USART_RxISR_8BIT()
3006 HAL_USART_RxCpltCallback(husart); in USART_RxISR_8BIT()
3009 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_8BIT()
3013 husart->State = HAL_USART_STATE_READY; in USART_RxISR_8BIT()
3017 husart->TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3020 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_8BIT()
3031 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_8BIT()
3048 static void USART_RxISR_16BIT(USART_HandleTypeDef *husart) in USART_RxISR_16BIT() argument
3050 const HAL_USART_StateTypeDef state = husart->State; in USART_RxISR_16BIT()
3053 uint16_t uhMask = husart->Mask; in USART_RxISR_16BIT()
3058 tmp = (uint16_t *) husart->pRxBuffPtr; in USART_RxISR_16BIT()
3059 *tmp = (uint16_t)(husart->Instance->RDR & uhMask); in USART_RxISR_16BIT()
3060 husart->pRxBuffPtr += 2U; in USART_RxISR_16BIT()
3061 husart->RxXferCount--; in USART_RxISR_16BIT()
3063 if (husart->RxXferCount == 0U) in USART_RxISR_16BIT()
3066 CLEAR_BIT(husart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); in USART_RxISR_16BIT()
3069 CLEAR_BIT(husart->Instance->CR3, USART_CR3_EIE); in USART_RxISR_16BIT()
3072 husart->RxISR = NULL; in USART_RxISR_16BIT()
3075 txdatacount = husart->TxXferCount; in USART_RxISR_16BIT()
3081 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3085 husart->RxCpltCallback(husart); in USART_RxISR_16BIT()
3088 HAL_USART_RxCpltCallback(husart); in USART_RxISR_16BIT()
3091 else if ((READ_BIT(husart->Instance->CR1, USART_CR1_TCIE) != USART_CR1_TCIE) && in USART_RxISR_16BIT()
3095 husart->State = HAL_USART_STATE_READY; in USART_RxISR_16BIT()
3099 husart->TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3102 HAL_USART_TxRxCpltCallback(husart); in USART_RxISR_16BIT()
3113 husart->Instance->TDR = (USART_DUMMY_DATA & (uint16_t)0x00FF); in USART_RxISR_16BIT()