RM0366
Idle preamble
TX line
TXE flag
DMA request
USART_TDR
F1
TC flag
DMA writes
USART_TDR
DMA TCIF flag
(transfer
complete)
Software
DMA writes
configures DMA
F1 into
to send 3 data
USART_TDR
blocks and
enables USART
Reception using DMA
DMA mode can be enabled for reception by setting the DMAR bit in USART_CR3 register.
Data is loaded from the USART_RDR register to a SRAM area configured using the DMA
peripheral (refer to
whenever a data byte is received. To map a DMA channel for USART reception, use the
following procedure:
1.
Write the USART_RDR register address in the DMA control register to configure it as
the source of the transfer. The data is moved from this address to the memory after
each RXNE event.
2.
Write the memory address in the DMA control register to configure it as the destination
of the transfer. The data is loaded from USART_RDR to this memory area after each
RXNE event.
3.
Configure the total number of bytes to be transferred to the DMA control register.
4.
Configure the channel priority in the DMA control register
5.
Configure interrupt generation after half/ full transfer as required by the application.
6.
Activate the channel in the DMA control register.
When the number of data transfers programmed in the DMA Controller is reached, the DMA
controller generates an interrupt on the DMA channel interrupt vector.
Universal synchronous/asynchronous receiver transmitter (USART/UART)
Figure 295. Transmission using DMA
Frame 1
Set by hardware
cleared by DMA read
F2
Set by hardware
DMA writes
DMA writes
F2 into
F3 into
USART_TDR
USART_TDR
Section 10: Direct memory access controller (DMA) on page
RM0366 Rev 5
Frame 2
Set by hardware
cleared by DMA read
F3
Cleared
by
software
The DMA
transfer is
Software waits until TC=1
complete
(TCIF=1 in
DMA_ISR)
Frame 3
Set by hardware
Ignored by the DMA because
the transfer is complete
ai17192b
152)
Set by
hardware
749/874
779
Need help?
Do you have a question about the STM32F301 6 Series and is the answer not in the manual?