研究生
最后登录1970-1-1
在线时间 小时
注册时间2014-8-21
|
发表于 2014-11-1 18:29:16
|
显示全部楼层
当然不是
且不说DMA传输方式和有几路通道采集半毛钱关系都没有
如果你不想用DMA,那就采用单次转换模式,配置ADC的时候注意如下:
[code=c] ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; [/code]
开始采集的时候调用如下:
[code=c] ADC_SoftwareStartConvCmd(ADC1,ENABLE);
while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
Adc_Numerical=ADC_GetConversionValue(ADC1);
ADC_ClearFlag( ADC1, ADC_FLAG_EOC); [/code]
这样ADC的全部通道就完成一次转换了,不过注意我这里禁止了扫描模式,如果你想多通道转换,要开启扫描模式的~
[code=c]ADC_InitStructure.ADC_ScanConvMode = ENABLE;[/code]
然后像下面这样多开几个通道
[code=c] ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);[/code]还有就是别忘了下面这个参数要改
[code=c]ADC_InitStructure.ADC_NbrOfChannel[/code]
其实我之前也没试过多路ADC的非DMA方式采集,还是建议你多看参考手册,看懂看透! |
|