TIM1定时触发ADC多路采样+DMA传输(寄存器版)

2019-08-14 20:13发布

本帖最后由 梦回默槐 于 2017-4-27 15:35 编辑

前些天一直在弄这个东西,终于弄出来了。做了多年的伸手党,今天也来分享一发。
本例是定时器1(TIM1)的CC定时触发3路ADC规则采样(如果需要的话,还可以配2,4,5,6……路,很简单的)采样频率50KHz,通过DMA_Channel1传输三路ADC的值,赋给ADC_Value[3]这个数组上,而且在传输完成后进入DMA传输完成中断,将ADC_Value这个数组的值分别给Voltage1,Voltage2,Current三个变量。
我用4线SPI的OLED进行了显示。由于ADC本身的时钟限制,ADC的采样频率不能过高,50K就挺高了,估计大家都够用。嘿嘿。以下是例程。

当然也可以选择不用TIM1触发ADC,让ADC一直循环采样也行,定时处理数据也是可以的。我这里调了一个PI参数,还没调好,就先别做参考了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。