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设置
1.2 DMA设置
1.3 中断
值得注意的是,笔者在测试过程中,发现使用DMA后,中断回调函数只有DMA2_Stream0_IRQHandler生效
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);
2 OneShot
2.1 方法1
2.2 方法2
3 循环模式