Universal synchronous asynchronous receiver transmitter (USART)
Procedure:
1.
Program the M bit in USART_CR1 to define the word length.
2.
Select the desired baud rate using the USART_BRR register.
3.
Program the number of stop bits in USART_CR2.
4.
Enable the USART by writing the UE bit in USART_CR1 register to 1.
5.
Select DMA enable (DMAT) in USART_CR3 if Multi buffer Communication is to take
place. Configure the DMA register as explained in multibuffer communication.
6.
Set the TE bit in USART_CR1 to send an idle frame as first transmission.
7.
Write the data to send in the USART_TDR register (this clears the TXE bit). Repeat this
for each data to be transmitted in case of single buffer.
8.
After writing the last data into the USART_TDR register, wait until TC=1. This indicates
that the transmission of the last frame is complete. This is required for instance when
the USART is disabled or enters the Halt mode to avoid corrupting the last
transmission.
Single byte communication
Clearing the TXE bit is always performed by a write to the transmit data register.
The TXE bit is set by hardware and it indicates:
●
The data has been moved from the USART_TDR register to the shift register and the
data transmission has started.
●
The USART_TDR register is empty.
●
The next data can be written in the USART_TDR register without overwriting the
previous data.
This flag generates an interrupt if the TXEIE bit is set.
When a transmission is taking place, a write instruction to the USART_TDR register stores
the data in the TDR register and which is copied in the shift register at the end of the current
transmission.
When no transmission is taking place, a write instruction to the USART_TDR register places
the data in the shift register, the data transmission starts, and the TXE bit is set.
If a frame is transmitted (after the stop bit) and the TXE bit is set, the TC bit goes high. An
interrupt is generated if the TCIE bit is set in the USART_CR1 register.
After writing the last data in the USART_TDR register, it is mandatory to wait for TC=1
before disabling the USART or causing the microcontroller to enter the low power mode (see
Figure 231: TC/TXE behavior when
Note:
The correct procedure to disable the USART is:
- clear the TE bit (if a transmission is ongoing or a data word is in the USART_TDR register,
it will be sent before effectively disabling the transmission)
- the TC is set either immediately or at the end of the pending transmission
- clear the UE bit after TC=1
578/742
transmitting).
Doc ID 018940 Rev 1
RM0091
Need help?
Do you have a question about the STM32F05 series and is the answer not in the manual?
Questions and answers