[STM32F1] 这样可以求得ADC多通道连续转换的均值吗

[复制链接]
1156|17
 楼主| zwll 发表于 2020-9-29 23:24 | 显示全部楼层 |阅读模式
u16 Input_Filter(u8 times)
{
        float vol_val=0;
        u8 t;
        int a;
        for(t=0;t<times;t++)
        {
                vol_val+= (ADC_Buf[0]*3300)/4095/10;
//                delay_ms(5);
        }
        a=(float)vol_val/times*1.414/5.6;
        vol_val=(float)a/100;
        return a;
}
xxrs 发表于 2020-9-29 23:25 | 显示全部楼层
楼主,你这就OUT了。
你不应该让原始数据每次都计算的。
pengf 发表于 2020-9-29 23:26 | 显示全部楼层
你应该获取原始数据,先累积求和,最后一次转换计算就行了。
houcs 发表于 2020-9-29 23:27 | 显示全部楼层
u16 Input_Filter(u8 times)
{
        unsigned int vol_val;
        u8 t;
        int a;
        for(t=0;t<times;t++)
        {
                vol_val+=ADC_Buf[0];
//                delay_ms(5);
        }
//等取值完成后,这里一次计算就行,要不然浮点运算影响系统速度的,另外注意数据格式和长度。
yinxiangh 发表于 2020-9-29 23:28 | 显示全部楼层
一定不要可以做一次的事情,重复做。
 楼主| zwll 发表于 2020-9-29 23:29 | 显示全部楼层
谢谢各位大佬
ousj 发表于 2020-9-29 23:30 | 显示全部楼层
算法有问题
zyf部长 发表于 2020-9-29 23:31 | 显示全部楼层
亲 算法问题 你这越算越小啊
yufe 发表于 2020-9-29 23:32 | 显示全部楼层
板凳写的对
xxmmi 发表于 2020-9-29 23:33 | 显示全部楼层
算法问题  楼主基本功。。。。。
kangzj 发表于 2020-9-29 23:34 | 显示全部楼层
绝对的低级错误
lium 发表于 2020-9-29 23:35 | 显示全部楼层
楼主多多的写代码 就不会犯这种错误了
 楼主| zwll 发表于 2020-9-29 23:37 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
renzheshengui 发表于 2020-10-12 09:39 | 显示全部楼层
不能这样算的啊
wakayi 发表于 2020-10-12 09:40 | 显示全部楼层
当然不能这样算了
wowu 发表于 2020-10-12 09:41 | 显示全部楼层
不可以呀这样
xiaoqizi 发表于 2020-10-12 09:42 | 显示全部楼层
应该对单个通道多次累加平均
木木guainv 发表于 2020-10-12 09:43 | 显示全部楼层
希望楼主能改正过来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部