找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1991|回复: 3
打印 上一主题 下一主题
收起左侧

关于单片机ADC双通道检测时,数据出现误差的疑惑

[复制链接]
跳转到指定楼层
楼主
如题,最近在做一个单片机小玩意,要用一个通道检测物体温度,另外一个通道检测电池电压;
两者分别调试的时候没啥问题,关键是两者同时开启时,发现ADC检测出来的数据出现了较大的误差;
在NTC每25ms采样一次,电池电压每250ms采样一次的条件下,
出现的现象为:调整输入电压,使ADC检测到的数据为0x8d时,系统亮红灯,但是隔一段时间会闪一下白灯 0x87(异常);
在NTC和电池电压同为25ms采样一次的条件下,
出现的现象为:调整输入电压,使ADC检测到的数据为0x89时,系统亮青灯,但是隔一段时间会闪一下黄灯 0x88(异常);
理论值灯色
0x8d紫色(红+蓝)
0x8c
0x8b绿
0x8a
0x89青(蓝+绿)
0x88黄(绿+红)
0x87白色
为什么会出现异常?还有就是为什么把采样时间修改了一下,出现的数据误差会变小了?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:747743 发表于 2021-6-17 07:34 | 只看该作者
ADC是符合采样定理的,采样定理里要求采样频率是信号频率的两倍实际上越大越好,采样周期是采样率的倒数,采样率越大ADC精度越高,同时功耗越大CPU负荷越大
回复

使用道具 举报

板凳
ID:818024 发表于 2021-6-17 10:22 | 只看该作者
不清楚你说的什么,不过对于stm32同一个ADC不同通道用的是同一个寄存器,有可能是这方面的问题,不过更有可能是电路问题

123.png (108.99 KB, 下载次数: 39)

123.png
回复

使用道具 举报

地板
ID:609192 发表于 2021-8-11 10:03 | 只看该作者
这个问题解决了,我程序是多次采样然后取平均值,然后采集次数到了临界点之后,进行平均,但是最后一次采样的ADC数据没取出来,留在了里面,然后被下一通道的ADC给取出来了,所以就有了我描述的问题现象出现。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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