初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2015-12-3
- 在线时间
- 29 小时
|
发表于 2015-12-3 18:45:01
|
显示全部楼层
回复【4楼】alangada:
---------------------------------
你是单通道采集还是多通道?多通道的话需要配置的
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
而且如果你不设置DMA的话,在取得ADC值函数中要这样改(以四个通道为例)
u16 Get_Adc(u8 ch)
{
//设置指定ADC的规则组通道,一个序列,采样时间
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
ADC_RegularChannelConfig(ADC1, ch, 2, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
ADC_RegularChannelConfig(ADC1, ch, 3, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
ADC_RegularChannelConfig(ADC1, ch, 4, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
} |
|