OpenEdv-开源电子网

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

请教一下ADC的入口参数问题

[复制链接]

13

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2019-7-16
在线时间
17 小时
发表于 2019-7-26 11:20:50 | 显示全部楼层 |阅读模式
1金钱
学例程的时候getadc的入口参数是这么写的u16 Get_Adc(u8 ch)
{
//设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );
//通道 1,规则采样顺序值为 1,采样时间为 239.5 周期
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能软件转换功能
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
return ADC_GetConversionValue(ADC1); //返回最近一次 ADC1 规则组的转换结果
}

后边的注解是这样
函数 Get_Adc,用于读取某个通道ADC 值,例如我们读取通道 1 上的 ADC 值,就可以通过 Get_Adc1)得到。最后一个函Get_Adc_Average,用于多次获取 ADC 值,取平均,用来提高准确度。
取平均值的函数是这样
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;


所以这个函数应该写成 Get_Adc_Average(1,10)就是求ADC1的通道1的10次平均值
但是在main函数中他却是这么写的
adcx=Get_Adc_Average(ADC_Channel_1,10);
想问下写法为什么成ADC_Channel_1了


最佳答案

查看完整内容[请看2#楼]

文件里没有,从代码里搜到了,是我傻了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2019-7-16
在线时间
17 小时
 楼主| 发表于 2019-7-26 11:20:51 | 显示全部楼层
nashui_sx 发表于 2019-7-26 11:50
你看看ADC_Channel_1值是多少不就知道了

文件里没有,从代码里搜到了,是我傻了
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-26 11:50:41 | 显示全部楼层
你看看ADC_Channel_1值是多少不就知道了
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-7-26 14:17:35 | 显示全部楼层
Zeralt 发表于 2019-7-26 11:20
文件里没有,从代码里搜到了,是我傻了

右键看下不就知道了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-5 09:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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