[STM32F1] 一个非常奇怪的问题 ADC 的DMA转换

[复制链接]
1559|15
 楼主| lapplegirl 发表于 2015-9-22 17:09 | 显示全部楼层 |阅读模式
有关的程序就这么几行,使用代码优化模式,ADC通道就错了(6和7正好颠倒),如果不是用优化模式,ADC通道就是对的,有谁有高见,到底咋弄这个东西


                        ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 1, ADC_SampleTime_7Cycles5 );        //ADC1,ADC通道1,采样时间为239.5周期                                      
                        ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 2, ADC_SampleTime_7Cycles5 );        //ADC1,ADC通道2,采样时间为239.5周期
                        MYDMA_Config(DMA1_Channel1,(u32)&ADC1->DR,(u32)adcbuf,N*2);
                                                                                                                        //DMA1通道1,外设为ADC1,缓存为rxbuff,由于是两个通道,传输2N个数据
                        ADC_DMACmd(ADC1,ENABLE);                                //ADC的DMA使能
        ADC_SoftwareStartConvCmd(ADC1, ENABLE);                        //使能指定的ADC1的软件转换
                        MYDMA_Enable(DMA1_Channel1);                        //开始一次DMA传输!
lwsn 发表于 2015-9-22 19:09 | 显示全部楼层
应该是某些代码被优化掉了
amanda_s 发表于 2015-9-23 16:31 | 显示全部楼层
开了优化后,有时会把某些代码优化掉。
调试看看代码执行的过程,确认一下是不是。
gejigeji521 发表于 2015-9-23 19:58 | 显示全部楼层
为了让你的代码原汁原味的编译,最好都别开优化。
 楼主| lapplegirl 发表于 2015-9-24 18:42 | 显示全部楼层
终于查到问题了,AD转换后,延时一下,等到AD转换完成后再开启DMA。呵呵
尤彼卡 发表于 2015-9-24 19:56 | 显示全部楼层
调试看看代码执行的过程,是不是代码被优化掉了。
yiyigirl2014 发表于 2015-9-24 21:31 | 显示全部楼层
我是很少用DMA的,都是玩的比较简单。
gejigeji521 发表于 2015-9-24 22:04 | 显示全部楼层
AD转换后,延时一下,等到AD转换完成后再开启DMA。
既然这样,转换后,可以用while判断啊,转换完成后,再进入DMA
冰河w 发表于 2015-9-25 16:23 | 显示全部楼层
关了优化,或者优化降低试试看
boy1990 发表于 2015-9-25 19:15 | 显示全部楼层
看看代码的执行过程,或许可以找到问题所在。。。
 楼主| lapplegirl 发表于 2015-9-26 12:35 | 显示全部楼层
AD转换后,延时一下,等到AD转换完成后再开启DMA。
既然这样,转换后,可以用while判断啊,转换完成后,再进入DMA



试过用while判断
好像不行,延时1uS就好了,正合适,但是不知道稳定不。
迪卡 发表于 2015-9-26 17:40 | 显示全部楼层
延时1uS就好了

为什么延时1uS就好了?
Snow7 发表于 2015-9-27 21:33 | 显示全部楼层
延时1uS就好了,正合适

在哪延时1uS
Micachl 发表于 2015-9-28 08:05 | 显示全部楼层
用IAR吧,优化的好些
643757107 发表于 2015-9-28 08:37 | 显示全部楼层
应该是某些代码被优化掉了
 楼主| lapplegirl 发表于 2015-9-28 17:37 | 显示全部楼层
我也不知道为啥延时1uS就好,道理上第一次ADC转换完成了,但是用while判断完成就不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

117

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部