ST MP157 AD DMA单次/循环模式传输技术-综合

723 阅读1分钟

1 AD模数转换与DMA循环模式

  • Conversion Data Management Mode 用于配置转换数据管理模式,我们暂时只能选择 RegularConversion data stored in DR register only,即将常规转换的数据存储在 DR 寄存器中,等下一步配置 DMA 后,再选择 DMA 单次模式或者 DMA 循环模式
  • 如果配置 DMA 请求为正常模式(Normal),那么 DMA 传输完指定的数目的数据后就停止传输了,而且在此模式下,转换数据管理模式不能选择 DMA 循环模式。

1.1 ADC设置

image.png image.png image.png

1.2 DMA设置

image.png

1.3 中断

  • 值得注意的是,笔者在测试过程中,发现使用DMA后,中断回调函数只有DMA2_Stream0_IRQHandler生效 image.png image.png

1.4 主函数

  • 循环模式,需要屏蔽HAL_ADC_Start_DMA(&hadc1, (uint32_t*)g_adc_dma_buf, ADC_DMA_BUF_SIZE);
  • 单次模式若要连续转换,需要使能HAL_ADC_Start_DMA(&hadc1, (uint32_t*)g_adc_dma_buf, ADC_DMA_BUF_SIZE); image.png

2 OneShot

2.1 方法1

image.png image.png image.png image.png

2.2 方法2

image.png image.png image.png image.png

3 循环模式

image.png image.png image.png image.png