UM1940
c.
d.
3.
Program the Baud Rate, Word Length , Stop Bit, Parity, Hardware flow control and
Mode(Receiver/Transmitter) in the SMARTCARD Init structure.
4.
Initialize the SMARTCARD registers by calling the HAL_SMARTCARD_Init() API:
Three operation modes are available within this driver :
Polling mode IO operation
Send an amount of data in blocking mode using HAL_SMARTCARD_Transmit()
Receive an amount of data in blocking mode using HAL_SMARTCARD_Receive()
Interrupt mode IO operation
Send an amount of data in non blocking mode using
HAL_SMARTCARD_Transmit_IT()
At transmission end of transfer HAL_SMARTCARD_TxCpltCallback is executed and
user can add his own code by customization of function pointer
HAL_SMARTCARD_TxCpltCallback
Receive an amount of data in non blocking mode using
HAL_SMARTCARD_Receive_IT()
At reception end of transfer HAL_SMARTCARD_RxCpltCallback is executed and user
can add his own code by customization of function pointer
HAL_SMARTCARD_RxCpltCallback
In case of transfer Error, HAL_SMARTCARD_ErrorCallback() function is executed and
user can add his own code by customization of function pointer
HAL_SMARTCARD_ErrorCallback
Enable the clock for the SMARTCARD GPIOs.
Configure these SMARTCARD pins as alternate function pull-up.
NVIC configuration if you need to use interrupt process
(HAL_SMARTCARD_Transmit_IT() and HAL_SMARTCARD_Receive_IT() APIs):
Configure the USARTx interrupt priority.
Enable the NVIC USART IRQ handle.
DMA Configuration if you need to use DMA process
(HAL_SMARTCARD_Transmit_DMA() and HAL_SMARTCARD_Receive_DMA()
APIs):
Declare a DMA handle structure for the Tx/Rx stream.
Enable the DMAx interface clock.
Configure the declared DMA handle structure with the required Tx/Rx
parameters.
Configure the DMA Tx/Rx Stream.
Associate the initialized DMA handle to the SMARTCARD DMA Tx/Rx
handle.
Configure the priority and enable the NVIC for the transfer complete interrupt
on the DMA Tx/Rx Stream.
These APIs configure also the low level Hardware GPIO, CLOCK, CORTEX...etc)
by calling the customized HAL_SMARTCARD_MspInit() API.
The specific SMARTCARD interrupts (Transmission complete interrupt, RXNE
interrupt and Error Interrupts) will be managed using the macros
__HAL_SMARTCARD_ENABLE_IT() and __HAL_SMARTCARD_DISABLE_IT()
inside the transmit and receive process.
DocID028236 Rev 2
HAL SMARTCARD Generic Driver
533/1371
Need help?
Do you have a question about the STM32F2 and is the answer not in the manual?