本帖最后由 liang_ke 于 2016-12-14 09:01 编辑
原因已找到,问题出现在时钟配置方面.
使用DMA通道采集两路ADC,后来改成一路了,同样的问题,这个问题是我在几次断电和上电过程中发现的,
ADC和DMA的配置是在网上找和例程,采用DMA中断方式.
仿真时将监控ADC缓冲区数据,每次点仿真复位按钮后,缓冲区数据就有可能改变一次,最终会在两个数据之间交替切换.
不点复位按钮的情况下,这个数据就一直很稳定,不会乱跳.
如下图,
不同转换结果的情况下我都测量了ADC供电和ADC引脚电压,都是相同的,就是说电压没变,数据确变了.从上图可以看出,大了16个AD值
经过检查,发现问题出现在下面两段程序上,注释掉后就不再出现上电ADC数值交替变换的情况了.
// FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//选择FLASH预取指缓存的模,预取指缓存使能
// FLASH_SetLatency(FLASH_Latency_2);//FLASH操作的延时周期
|