186 #ifdef HAL_SMARTCARD_MODULE_ENABLED
202 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
219 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(
SMARTCARD_HandleTypeDef *hsc, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout);
308 assert_param(IS_SMARTCARD_INSTANCE(hsc->
Instance));
309 assert_param(IS_SMARTCARD_NACK_STATE(hsc->
Init.NACKState));
314 hsc->
Lock = HAL_UNLOCKED;
316 #if USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1
335 MODIFY_REG(hsc->
Instance->GTPR, USART_GTPR_PSC, hsc->
Init.Prescaler);
338 MODIFY_REG(hsc->
Instance->GTPR, USART_GTPR_GT, ((hsc->
Init.GuardTime)<<8U));
341 SMARTCARD_SetConfig(hsc);
346 CLEAR_BIT(hsc->
Instance->CR2, USART_CR2_LINEN);
347 CLEAR_BIT(hsc->
Instance->CR3, (USART_CR3_IREN | USART_CR3_HDSEL));
350 SET_BIT(hsc->
Instance->CR1, USART_CR1_PEIE);
353 SET_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
356 __HAL_SMARTCARD_ENABLE(hsc);
359 MODIFY_REG(hsc->
Instance->CR3, USART_CR3_NACK, hsc->
Init.NACKState);
362 hsc->
Instance->CR3 |= (USART_CR3_SCEN);
365 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
387 assert_param(IS_SMARTCARD_INSTANCE(hsc->
Instance));
392 __HAL_SMARTCARD_DISABLE(hsc);
395 #if USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1
406 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
448 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
471 HAL_StatusTypeDef status = HAL_OK;
473 if (pCallback == NULL)
476 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
521 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
542 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
552 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
582 HAL_StatusTypeDef status = HAL_OK;
623 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
644 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
654 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_INVALID_CALLBACK;
756 const uint8_t *tmp = pData;
757 uint32_t tickstart = 0U;
761 if((pData == NULL) || (Size == 0U))
769 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
780 if(SMARTCARD_WaitOnFlagUntilTimeout(hsc, SMARTCARD_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
784 hsc->
Instance->DR = (uint8_t)(*tmp & 0xFFU);
788 if(SMARTCARD_WaitOnFlagUntilTimeout(hsc, SMARTCARD_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
818 uint8_t *tmp = pData;
819 uint32_t tickstart = 0U;
823 if((pData == NULL) || (Size == 0U))
831 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
844 if(SMARTCARD_WaitOnFlagUntilTimeout(hsc, SMARTCARD_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
848 *tmp = (uint8_t)(hsc->
Instance->DR & (uint8_t)0xFFU);
879 if((pData == NULL) || (Size == 0U))
891 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
898 SET_BIT(hsc->
Instance->CR1, USART_CR1_PEIE);
901 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
904 SET_BIT(hsc->
Instance->CR1, USART_CR1_TXEIE);
927 if((pData == NULL) || (Size == 0U))
939 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
946 SET_BIT(hsc->
Instance->CR1, USART_CR1_PEIE| USART_CR1_RXNEIE);
949 SET_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
974 if((pData == NULL) || (Size == 0U))
986 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
999 tmp = (
const uint32_t*)&pData;
1003 __HAL_SMARTCARD_CLEAR_FLAG(hsc, SMARTCARD_FLAG_TC);
1010 SET_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1036 if((pData == NULL) || (Size == 0U))
1047 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
1060 tmp = (uint32_t*)&pData;
1064 __HAL_SMARTCARD_CLEAR_OREFLAG(hsc);
1070 SET_BIT(hsc->
Instance->CR1, USART_CR1_PEIE);
1073 SET_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1077 SET_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1102 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1103 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1106 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT))
1108 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1122 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1124 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1142 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
1166 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1169 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT))
1171 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1208 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1209 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1212 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1214 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1252 uint32_t AbortCplt = 0x01U;
1255 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1256 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1265 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT))
1279 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1290 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT))
1293 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1314 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1316 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1338 if(AbortCplt == 0x01U)
1345 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
1352 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1380 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1383 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT))
1385 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1410 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1428 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1457 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1458 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1461 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1463 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1488 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1506 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1526 uint32_t isrflags = READ_REG(hsc->
Instance->SR);
1527 uint32_t cr1its = READ_REG(hsc->
Instance->CR1);
1528 uint32_t cr3its = READ_REG(hsc->
Instance->CR3);
1529 uint32_t dmarequest = 0x00U;
1530 uint32_t errorflags = 0x00U;
1533 errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
1534 if(errorflags == RESET)
1537 if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1539 SMARTCARD_Receive_IT(hsc);
1545 if((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
1548 if(((isrflags & SMARTCARD_FLAG_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
1550 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_PE;
1554 if(((isrflags & SMARTCARD_FLAG_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1556 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_FE;
1560 if(((isrflags & SMARTCARD_FLAG_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1562 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_NE;
1566 if(((isrflags & SMARTCARD_FLAG_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1568 hsc->
ErrorCode |= HAL_SMARTCARD_ERROR_ORE;
1571 if(hsc->
ErrorCode != HAL_SMARTCARD_ERROR_NONE)
1574 if(((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1576 SMARTCARD_Receive_IT(hsc);
1581 dmarequest = HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR);
1582 if(((hsc->
ErrorCode & HAL_SMARTCARD_ERROR_ORE) != RESET) || dmarequest)
1587 SMARTCARD_EndRxTransfer(hsc);
1589 if(HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR))
1591 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1608 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1619 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1632 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1639 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
1646 if(((isrflags & SMARTCARD_FLAG_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
1648 SMARTCARD_Transmit_IT(hsc);
1653 if(((isrflags & SMARTCARD_FLAG_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
1655 SMARTCARD_EndTransmit_IT(hsc);
1780 uint32_t temp1= 0x00U, temp2 = 0x00U;
1810 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1843 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAT);
1846 SET_BIT(hsc->
Instance->CR1, USART_CR1_TCIE);
1862 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1863 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
1867 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_DMAR);
1872 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1889 uint32_t dmarequest = 0x00U;
1893 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_DMA;
1896 dmarequest = HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAT);
1899 SMARTCARD_EndTxTransfer(hsc);
1903 dmarequest = HAL_IS_BIT_SET(hsc->
Instance->CR3, USART_CR3_DMAR);
1906 SMARTCARD_EndRxTransfer(hsc);
1909 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
1929 static HAL_StatusTypeDef SMARTCARD_WaitOnFlagUntilTimeout(
SMARTCARD_HandleTypeDef *hsc, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
1932 while((__HAL_SMARTCARD_GET_FLAG(hsc, Flag) ? SET : RESET) == Status)
1935 if(Timeout != HAL_MAX_DELAY)
1937 if((Timeout == 0U)||((
HAL_GetTick() - Tickstart ) > Timeout))
1940 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_TXEIE);
1941 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_RXNEIE);
1968 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
1984 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
1985 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
2006 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_TXEIE);
2009 SET_BIT(hsc->
Instance->CR1, USART_CR1_TCIE);
2029 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_TCIE);
2032 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
2037 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2065 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_RXNEIE);
2068 CLEAR_BIT(hsc->
Instance->CR1, USART_CR1_PEIE);
2071 CLEAR_BIT(hsc->
Instance->CR3, USART_CR3_EIE);
2076 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2106 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2143 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
2149 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2186 hsc->
ErrorCode = HAL_SMARTCARD_ERROR_NONE;
2192 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2218 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2244 #if (USE_HAL_SMARTCARD_REGISTER_CALLBACKS == 1)
2261 uint32_t tmpreg = 0x00U;
2265 assert_param(IS_SMARTCARD_INSTANCE(hsc->
Instance));
2266 assert_param(IS_SMARTCARD_POLARITY(hsc->
Init.CLKPolarity));
2267 assert_param(IS_SMARTCARD_PHASE(hsc->
Init.CLKPhase));
2268 assert_param(IS_SMARTCARD_LASTBIT(hsc->
Init.CLKLastBit));
2269 assert_param(IS_SMARTCARD_BAUDRATE(hsc->
Init.BaudRate));
2270 assert_param(IS_SMARTCARD_WORD_LENGTH(hsc->
Init.WordLength));
2271 assert_param(IS_SMARTCARD_STOPBITS(hsc->
Init.StopBits));
2272 assert_param(IS_SMARTCARD_PARITY(hsc->
Init.Parity));
2273 assert_param(IS_SMARTCARD_MODE(hsc->
Init.Mode));
2274 assert_param(IS_SMARTCARD_NACK_STATE(hsc->
Init.NACKState));
2278 CLEAR_BIT(hsc->
Instance->CR1, (USART_CR1_TE | USART_CR1_RE));
2283 tmpreg &= (uint32_t)~((uint32_t)(USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_CLKEN | USART_CR2_LBCL));
2289 tmpreg |= (uint32_t)(USART_CR2_CLKEN | hsc->
Init.CLKPolarity |
2290 hsc->
Init.CLKPhase| hsc->
Init.CLKLastBit | hsc->
Init.StopBits);
2292 WRITE_REG(hsc->
Instance->CR2, (uint32_t)tmpreg);
2297 tmpreg &= (uint32_t)~((uint32_t)USART_CR2_STOP);
2300 tmpreg |= (uint32_t)(hsc->
Init.StopBits);
2303 WRITE_REG(hsc->
Instance->CR2, (uint32_t)tmpreg);
2309 tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | \
2316 tmpreg |= (uint32_t)hsc->
Init.WordLength | hsc->
Init.Parity | hsc->
Init.Mode;
2319 WRITE_REG(hsc->
Instance->CR1, (uint32_t)tmpreg);
2323 CLEAR_BIT(hsc->
Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE));
2330 hsc->
Instance->BRR = SMARTCARD_BRR(pclk, hsc->
Init.BaudRate);
2336 hsc->
Instance->BRR = SMARTCARD_BRR(pclk, hsc->
Init.BaudRate);
2342 hsc->
Instance->BRR = SMARTCARD_BRR(pclk, hsc->
Init.BaudRate);
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
void HAL_SMARTCARD_MspInit(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD MSP Init.
HAL_StatusTypeDef HAL_SMARTCARD_DeInit(SMARTCARD_HandleTypeDef *hsc)
DeInitializes the USART SmartCard peripheral.
HAL_StatusTypeDef HAL_SMARTCARD_RegisterCallback(SMARTCARD_HandleTypeDef *hsc, HAL_SMARTCARD_CallbackIDTypeDef CallbackID, pSMARTCARD_CallbackTypeDef pCallback)
Register a User SMARTCARD Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_SMARTCARD_UnRegisterCallback(SMARTCARD_HandleTypeDef *hsc, HAL_SMARTCARD_CallbackIDTypeDef CallbackID)
Unregister an SMARTCARD callback SMARTCARD callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_SMARTCARD_Init(SMARTCARD_HandleTypeDef *hsc)
Initializes the SmartCard mode according to the specified parameters in the SMARTCARD_InitTypeDef and...
void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD MSP DeInit.
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing Transmit transfer (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing Receive transfer (Interrupt mode).
void HAL_SMARTCARD_AbortCpltCallback(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD Abort Complete callback.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size)
Send an amount of data in non blocking mode.
void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD error callback.
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size)
Send an amount of data in non blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing Transmit transfer (blocking mode).
void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsc)
Tx Transfer completed callbacks.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
Receive an amount of data in non blocking mode.
void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsc)
This function handles SMARTCARD interrupt request.
HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
void HAL_SMARTCARD_AbortReceiveCpltCallback(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD Abort Receive Complete callback.
void HAL_SMARTCARD_AbortTransmitCpltCallback(SMARTCARD_HandleTypeDef *hsc)
SMARTCARD Abort Transmit Complete callback.
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size)
Receive an amount of data in non blocking mode.
void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsc)
Rx Transfer completed callback.
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing transfers (Interrupt mode).
HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, const uint8_t *pData, uint16_t Size, uint32_t Timeout)
Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing transfers (blocking mode).
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsc)
Abort ongoing Receive transfer (blocking mode).
uint32_t HAL_SMARTCARD_GetError(const SMARTCARD_HandleTypeDef *hsc)
Return the SMARTCARD error code.
HAL_SMARTCARD_StateTypeDef HAL_SMARTCARD_GetState(const SMARTCARD_HandleTypeDef *hsc)
Return the SMARTCARD handle state.
void SMARTCARD_InitCallbacksToDefault(SMARTCARD_HandleTypeDef *hsc)
Initialize the callbacks to their default values.
This file contains all the functions prototypes for the HAL module driver.
HAL_SMARTCARD_StateTypeDef
HAL SMARTCARD State structures definition.
@ HAL_SMARTCARD_STATE_BUSY
@ HAL_SMARTCARD_STATE_RESET
@ HAL_SMARTCARD_STATE_READY
@ HAL_SMARTCARD_STATE_BUSY_TX
@ HAL_SMARTCARD_STATE_BUSY_RX
HAL_SMARTCARD_CallbackIDTypeDef
HAL SMARTCARD Callback ID enumeration definition.
@ HAL_SMARTCARD_ERROR_CB_ID
@ HAL_SMARTCARD_MSPDEINIT_CB_ID
@ HAL_SMARTCARD_ABORT_TRANSMIT_COMPLETE_CB_ID
@ HAL_SMARTCARD_ABORT_COMPLETE_CB_ID
@ HAL_SMARTCARD_RX_COMPLETE_CB_ID
@ HAL_SMARTCARD_TX_COMPLETE_CB_ID
@ HAL_SMARTCARD_ABORT_RECEIVE_COMPLETE_CB_ID
@ HAL_SMARTCARD_MSPINIT_CB_ID
void(* pSMARTCARD_CallbackTypeDef)(SMARTCARD_HandleTypeDef *hsc)
HAL SMARTCARD Callback pointer definition.
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
SMARTCARD handle Structure definition.
void(* MspInitCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
void(* TxCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
void(* AbortTransmitCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
void(* AbortCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
void(* RxCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
SMARTCARD_InitTypeDef Init
DMA_HandleTypeDef * hdmarx
__IO uint16_t TxXferCount
void(* AbortReceiveCpltCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
void(* ErrorCallback)(struct __SMARTCARD_HandleTypeDef *hsc)
__IO uint16_t RxXferCount
__IO HAL_SMARTCARD_StateTypeDef gState
const uint8_t * pTxBuffPtr
__IO HAL_SMARTCARD_StateTypeDef RxState
DMA_HandleTypeDef * hdmatx
void(* MspDeInitCallback)(struct __SMARTCARD_HandleTypeDef *hsc)