DocID018909 Rev 11
995/1731
RM0090
Universal synchronous asynchronous receiver transmitter (USART)
1010
Figure 315. Transmission using DMA
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_DR register to a SRAM area configured using the DMA
peripheral (refer to the DMA specification) whenever a data byte is received. To map a DMA
channel for USART reception, use the following procedure:
1.
Write the USART_DR register address in the DMA control register to configure it as the
source of the transfer. The data will be 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 will be loaded from USART_DR to this memory area after each
RXNE event.
3. Configure the total number of bytes to be transferred in 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. The DMAR bit should
be cleared by software in the USART_CR3 register during the interrupt subroutine.
48LINE
53!24?$2
&RAME
48%FLAG
&
4#FLAG
&
&RAME
VRIWZDUHZDLWVXQWLO7&
&RAME
SETBYHARDWARE
CLEAREDBY$-!READ
SETBYHARDWARE
CLEAREDBY$-!READ
SETBYHARDWARE
SET
)DLEPREAMBLE
BYHARDWARE
&
VRIWZDUHFRQILJXUHV
WKH'0$WRVHQG
GDWDDQGHQDEOHVWKH
86$57
$-!REQUEST
IGNOREDBYTHE$-!
$-!WRITES
FLAG$-!4#)&
SETBYHARDWARE
CLEAR
BYSOFTWARE
53!24?$2
BECAUSE$-!TRANSFERISCOMPLETE
'0$ZULWHV)
LQWR
86$57B'5
'0$ZULWHV)
LQWR
86$57B'5
'0$ZULWHV)
LQWR
86$57B'5
7KH'0$WUDQVIHU
LVFRPSOHWH
7&,) LQ
'0$B,65
4RA NSFERCOMPLETE
AIB