OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4580|回复: 2

STM32F4 的ADC采样问题

[复制链接]

20

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-3-28
在线时间
21 小时
发表于 2016-3-29 17:45:32 | 显示全部楼层 |阅读模式
return ADC_GetConversionValue(ADC1);  当我需要返回ADC的六个通道的采样数据时相应的使用哪个函数呀?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2015-1-13
在线时间
21 小时
发表于 2016-3-29 18:17:59 | 显示全部楼层
[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]
回复 支持 反对

使用道具 举报

20

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-3-28
在线时间
21 小时
 楼主| 发表于 2016-3-30 13:39:07 | 显示全部楼层
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路数据,能够全部返回吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 15:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表