打印
[STM32F1]

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

[复制链接]
531|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2022-11-12 23:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
}

使用特权

评论回复
沙发
yszong| | 2022-11-12 23:56 | 只看该作者
楼主,你这就OUT了。
你不应该让原始数据每次都计算的。

使用特权

评论回复
板凳
pengf| | 2022-11-12 23:58 | 只看该作者
你应该获取原始数据,先累积求和,最后一次转换计算就行了。

使用特权

评论回复
地板
zhaoxqi| | 2022-11-13 08:42 | 只看该作者
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);
        }
//等取值完成后,这里一次计算就行,要不然浮点运算影响系统速度的,另外注意数据格式和长度。

使用特权

评论回复
5
llljh| | 2022-11-13 08:45 | 只看该作者
一定不要可以做一次的事情,重复做。

使用特权

评论回复
6
zwll|  楼主 | 2022-11-13 08:48 | 只看该作者
谢谢各位大佬

使用特权

评论回复
7
yinxiangh| | 2022-11-13 08:53 | 只看该作者
算法有问题

使用特权

评论回复
8
jlyuan| | 2022-11-13 08:55 | 只看该作者

亲 算法问题 你这越算越小啊

使用特权

评论回复
9
chuxh| | 2022-11-13 08:58 | 只看该作者
板凳写的对

使用特权

评论回复
10
supernan| | 2022-11-13 09:00 | 只看该作者
算法问题  楼主基本功。。。。。

使用特权

评论回复
11
zhanghqi| | 2022-11-13 09:03 | 只看该作者
绝对的低级错误

使用特权

评论回复
12
juventus9554| | 2022-11-13 09:05 | 只看该作者
楼主多多的写代码 就不会犯这种错误了

使用特权

评论回复
13
pengf| | 2022-11-13 09:07 | 只看该作者
不能这样算的啊

使用特权

评论回复
14
lizye| | 2022-11-13 09:09 | 只看该作者
当然不能这样算了

使用特权

评论回复
15
zhaoxqi| | 2022-11-13 09:11 | 只看该作者
不可以呀这样

使用特权

评论回复
16
renyaq| | 2022-11-13 09:14 | 只看该作者
应该对单个通道多次累加平均

使用特权

评论回复
17
zwll|  楼主 | 2022-11-13 09:16 | 只看该作者
唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
18
Bowclad| | 2022-11-13 18:52 | 只看该作者
你这是算法问题啊

使用特权

评论回复
19
Undshing| | 2022-11-14 20:25 | 只看该作者
累积求和,最后转换计算

使用特权

评论回复
20
SantaBunny| | 2023-2-21 12:47 | 只看该作者
是算法的问题把

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

885

主题

11314

帖子

5

粉丝