STM32F4 的ADC采样问题

2019-07-20 23:10发布

return ADC_GetConversionValue(ADC1);  当我需要返回ADC的六个通道的采样数据时相应的使用哪个函数呀?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
Greece
1楼-- · 2019-07-21 01:42
[mw_shl_code=c,true]//获得ADC值
//ch: @ref ADC_channels
//通道值 0~16取值范围为:ADC_Channel_0~ADC_Channel_16
//返回值:转换结果
u16 Get_Adc(u8 ch)   
{
        ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_480Cycles );        //ADC1,ADC通道,480个周期,提高采样时间可以提高精确度                            
  
        ADC_SoftwareStartConv(ADC1);                //使能指定的ADC1的软件转换启动功能       
         
        while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束

        return ADC_GetConversionValue(ADC1);        //返回最近一次ADC1规则组的转换结果
}

//获取通道ch的转换值,取times次,然后平均
//ch:通道编号
//times:获取次数
//返回值:通道ch的times次转换结果平均值
u16 Get_Adc_Average(u8 ch,u8 times)
{
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
        {
                temp_val+=Get_Adc(ch);
                delay_ms(5);
        }
        return temp_val/times;
}
        [/mw_shl_code]
lishuaiwanm
2楼-- · 2019-07-21 04:06
Greece 发表于 2016-3-29 18:17
[mw_shl_code=c,true]//获得ADC值
//ch: @ref ADC_channels
//通道值 0~16取值范围为:ADC_Channel_0~AD ...

这个只能返回最近一次的ADC转换值呀?如果我使用ADC1采样6路数据,能够全部返回吗?

一周热门 更多>