你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

利用STM32F103的ADC采集模拟电压信号

[复制链接]
ddddd123得到 提问时间:2021-11-24 15:17 / 未解决

各位高手,我最近在做一个温度采集系统,大体是温度传感器和一个运算放大器构成,将温度传感器输出的电压经过运放后输入CPU的ADC口,然后将温度和电压显示在LCD上。

温度传感器采集电压的电路没什么问题,用电压表可以测出预定的电压,但是将输出电压接到STM32单片机的ADC口上却采不到数据。电压值和ADC的值一直是跳变的。

这是adc.c的程序

ADC.png

这是主程序main.c

main.png

图.jpg

ADC.png
收藏 评论11 发布时间:2021-11-24 15:17

举报

11个回答
xmshao 回答时间:2021-11-24 15:41:05
先排除软件配置方面的问题。可以先直接让ADC测量脚接电源或地看看结果如何,可以调整通道比较下。我看你使用的是别的现存开
发板,注意管脚使用冲突的问题。然后,再接上你现在的待测信号进一步验证。
butterflyspring 回答时间:2021-11-25 14:23:38
通常先检查一下硬件,看看硬件信号是否正常,包括外部阻抗是否合适,MCU的模拟电源,参考电源等是否正确。其次再看看软件,官方代码库有很多现成的例程工程,直接运行看看所得结果是否是预期值。 通常结果的末位会有些跳动,这是和电源的纹波有很大关系,所以在最后的数据处理或显示处理做一点变换,使得最终显示信息稳定。
ddddd123得到 回答时间:2021-11-27 11:06:00

我用例程改的程序是可以采集单片机IO口上的电压,显示也没有问题,但是接到温度传感器的输出端时采集到的电压信号和预估的信号不一样,应该采集到的是3V,但实际是1.7-2V之间跳变。

遇灬见氵 回答时间:2021-11-27 15:56:11

你可以看看是不是ADC转换出现了什么问题

ddddd123得到 回答时间:2021-11-27 18:51:49

遇灬见氵 发表于 2021-11-27 15:56
你可以看看是不是ADC转换出现了什么问题

程序吗?我感觉这个程序很简单,应该就是这样,不知道怎么改了。。。。。

butterflyspring 回答时间:2021-11-29 12:08:28
采样时间是多少? 加大采样时间试试,采集温度通常不需要那么快的。
ddddd123得到 回答时间:2021-11-29 16:26:00

采样时间为239.5个周期,大概17.1us,我感觉不小了

butterflyspring 回答时间:2021-12-1 17:32:03
通常充电时间取决于外部阻抗和电容,也就是RC常数。如果你的温度传感器系统提供的电流有限,那么就需要加大采样时间。
Glenxu 回答时间:2021-12-3 10:55:21

程序问题不大。

估计是温度的前向通道底线处理不好,有共模干扰。

把电路贴出来看看

nicole.088 回答时间:2021-12-7 09:17:12

应该用示波器看 电压的波动范围。万用表精度不够的话应该体现不出来。 这个还是要从电路角度去分析。一般负温度系数传感器是会引起电压的跳动。这个时候需要增加一个电容来处理。下面是我之前设计的一个温度采集的电路:

image.png

星海灿烂 回答时间:2021-12-18 15:01:47

可以打印转换的ADC值,以及使用示波器观察ADC的输入引脚的电平变化

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版