STM32DMA 正常模式和循环模式的区别
正常模式:hdma_adc1.Init.Mode = DMA_NORMAL;只启动一次数据转运,转运完需要调用DMA的停止指令,才能停止,如果想一直转换数据就需要每次转运数据后停止DMA再开启DMA,并且在串口,ADC初始化时需要启动一次DMA。如下图
初始化加入DMA
每次转运数据后停止DMA再开启DMA,
hdma_adc1.Init.Mode = DMA_CIRCULAR;就一直转运,无需停止DMA,自动更新数据。
正常模式:hdma_adc1.Init.Mode = DMA_NORMAL;只启动一次数据转运,转运完需要调用DMA的停止指令,才能停止,如果想一直转换数据就需要每次转运数据后停止DMA再开启DMA,并且在串口,ADC初始化时需要启动一次DMA。如下图
初始化加入DMA
每次转运数据后停止DMA再开启DMA,
hdma_adc1.Init.Mode = DMA_CIRCULAR;就一直转运,无需停止DMA,自动更新数据。