DMA读取ADC几个重要的地方

2019-07-21 07:00发布

最近做DMA读取3个通道的ADC数据终于搞定了 总结了几个重要的设置大家可以参考一下(在原子哥程序的基础上改的)
 ADC中要设定成扫描模式  连续转换模式 和通道的设置
DMA中要设置成 从外设读取数据  循环模式 传输数据量=存储器的大小=要转换的通道数
以上是小弟的几点愚见 有什么不对的请指教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
电子好学者
1楼-- · 2019-07-23 02:44
这程序可以?
lion204
2楼-- · 2019-07-23 02:52
发个库操作的,谢谢
youngs
3楼-- · 2019-07-23 08:01
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-23 09:02
回复【16楼】youngs:
---------------------------------
设置规则序列通道,上面清除之前设置,下面重新设置。
youngs
5楼-- · 2019-07-23 11:39
回复【17楼】正点原子:
---------------------------------
按照“上面清除之前设置,下面重新设置。”的说法
上面设置 :*** ADC1->SQR3&=0XFFFF8000;//规则序列 通道ch  
                *** ADC1->SQR3|=0X0000A50A; //10 8  9

下面设置: *** ADC1->SQR3&=0XFFFFFC00;//规则序列1 通道ch  
                *** ADC1->SQR3|=0X0000010A; //8 10

而楼主在test.c文件中显示10 8  9 三个通道, 这不会出错吗?
而且我刚才出现三个显示的电压值一样的情况,不知道问题出现在哪里。。。谢谢!
正点原子
6楼-- · 2019-07-23 13:43
u16 Get_Adc(u8 ch) 
这函数谁改的?
我原版的可不是这样哦!你这函数有问题!u16 Get_Adc(u8 ch) ,一次只能读1个通道,你这里同时设置2个通道明显就错了,而且ch也没用到,能读出来正确才怪。

一周热门 更多>