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参数,还没调好,就先别做参考了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
梦回默槐
1楼-- · 2019-08-14 21:05
今天一个学弟把我的程序下载下来,才发现自己程序传错了!真是抱歉!
现在发一下正确的程序,PID参数也调好了。大家可以看看。
梦回默槐
2楼-- · 2019-08-15 01:24
 精彩回答 2  元偷偷看……
平平
3楼-- · 2019-08-15 07:17
顶下。。。
企鹅之心
4楼-- · 2019-08-15 12:27
梦回默槐 发表于 2017-4-27 19:28
自己给自己mark一下

希望每个人都能像楼主一样乐于分享
robot007
5楼-- · 2019-08-15 17:26
顶一下,顶一下,顶一下!
张册
6楼-- · 2019-08-15 20:23
你好,很高兴看到分享的这份宝贵的资料,我现在也在做电源,自己也在写相关么程序,真心的希望我们可以交流学习。我的微信ZC138285希望可以一起和你交流进步。

一周热门 更多>