![GigaDevice Semiconductor GD32E23 Series User Manual Download Page 143](http://html.mh-extra.com/html/gigadevice-semiconductor/gd32e23-series/gd32e23-series_user-manual_2225794143.webp)
GD32E23x User Manual
143
8.4.7.
Channel configuration
When starting a new DMA transfer, it is recommended to respect the following steps:
1. Read the CHEN bit and judge whether the channel is enabled or not. If the channel is
enabled, clear the CHEN bit by software. When the CHEN bit is read as ‘0’, configuring
and starting a new DMA transfer is allowed.
2. Configure the M2M bit and DIR bit in the DMA_CHxCTL register to set the transfer
mode.
3. Configure the CMEN bit in the DMA_CHxCTL register to enable/disable the circular
mode.
4. Confi gure the PRIO bits in the DMA_CHxCTL register to set the channel software
priority.
5. Configure the memory and peripheral transfer width, memory and peripheral address
generation algorithm in the DMA_CHxCTL register.
6. Configure the enable bit for full transfer finish interrupt, half transfer finish interrupt,
transfer error interrupt in the DMA_CHxCTL register.
7. Configure the DMA_CHxPADDR register for setting the peripheral base address.
8. Configure the DMA_CHxMADDR register for setting the memory base address.
9. Configure the DMA_CHxCNT register to set the total transfer data number.
10. Configure the CHEN bit
with ‘1’ in the DMA_CHxCTL register to enable the channel.
8.4.8.
Interrupt
Each DMA channel has a dedicated interrupt. There are three types of interrupt event,
including full transfer finish, half transfer finish, and transfer error.
Each interrupt event has a dedicated flag bit in the DMA_INTF register, a dedicated clear bit
in the DMA_INTC register, and a dedicated enable bit in the DMA_CHxCTL register. The
relationship is described in the
Table 8-2. interrupt events
Interrupt event
Flag bit
Clear bit
Enable bit
DMA_INTF
DMA_INTC
DMA_CHxCTL
Full transfer finish
FTFIF
FTFIFC
FTFIE
Half transfer finish
HTFIF
HTFIFC
HTFIE
Transfer error
ERRIF
ERRIFC
ERRIE
The DMA interrupt logic is shown in the
Figure 8-3. DMA interrupt logic
, an interrupt can be
produced when any type of interrupt event occurs and enabled on the channel.