keaibukelian 发表于 2025-7-10 18:59

GD32F407 ADC连续采样

问题描述
在使用ADC多通道连续采样并使用DMA搬运数据,但只会在上电后搬运一次数据;

问题原因
再多通道时,DMA没有收到最后一个数据的搬运请求。

问题解决
在使能ADC DMA后在调用adc_dma_request_after_last_disable设置ADC_CTL1的DDM为1,使其在常规转换结束也会产生一个DMA搬运请求。

    adc_dma_mode_enable(ADC0);                                        /* 使能ADC DMA功能 */
    dma_channel_enable(DMA1, DMA_CH4);                        /* 使能DMA通道 */
    adc_dma_request_after_last_enable(ADC0);        /* 设置DDM位为1 重要!! */


注意:
本人也是第一次接触GD32,在使用中发现了该问题,问题原因描述可能会存在问题,但是确实通过该方式解决了该问题
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/apple_71172562/article/details/148632367

页: [1]
查看完整版本: GD32F407 ADC连续采样