久芯网

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

avatar ddddd123得到 提问时间: 2023-08-16 10:38:59 / 未解决

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

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

这是adc.c的程序

利用<a style=STM32F103的ADC采集模拟电压信号 [相关图片]' title='利用STM32F103的ADC采集模拟电压信号 [相关图片]' />

这是主程序main.c

利用STM32F103的ADC采集模拟电压信号 [相关图片]

利用STM32F103的ADC采集模拟电压信号 [相关图片]


如需获得 STM32F103 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

11个回答
  • avatar xmshao
    回答时间: 2023-08-16 11:00:24

    先排除软件配置方面的问题。可以先直接让ADC测量脚接电源或地看看结果如何,可以调整通道比较下。我看你使用的是别的现存开 发板,注意管脚使用冲突的问题。然后,再接上你现在的待测信号进一步验证。

  • avatar butterflyspring
    回答时间: 2023-08-16 11:23:06

    通常先检查一下硬件,看看硬件信号是否正常,包括外部阻抗是否合适,MCU的模拟电源,参考电源等是否正确。其次再看看软件,官方代码库有很多现成的例程工程,直接运行看看所得结果是否是预期值。 通常结果的末位会有些跳动,这是和电源的纹波有很大关系,所以在最后的数据处理或显示处理做一点变换,使得最终显示信息稳定。

  • avatar ddddd123得到
    回答时间: 2023-08-16 11:49:06

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

  • avatar 遇灬见氵
    回答时间: 2023-08-16 12:09:25

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

  • avatar ddddd123得到
    回答时间: 2023-08-16 12:33:02
    遇灬见氵 发表于 2021-11-27 15:56
    你可以看看是不是ADC转换出现了什么问题

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

  • avatar butterflyspring
    回答时间: 2023-08-16 12:50:15

    采样时间是多少? 加大采样时间试试,采集温度通常不需要那么快的。

  • avatar ddddd123得到
    回答时间: 2023-08-16 13:12:46

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

  • avatar butterflyspring
    回答时间: 2023-08-16 13:34:00

    通常充电时间取决于外部阻抗和电容,也就是RC常数。如果你的温度传感器系统提供的电流有限,那么就需要加大采样时间。

  • avatar Glenxu
    回答时间: 2023-08-16 13:57:48

    程序问题不大。 估计是温度的前向通道底线处理不好,有共模干扰。 把电路贴出来看看

  • avatar nicole.088
    回答时间: 2023-08-16 14:30:35

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

  • avatar 怀揣少年梦
    回答时间: 2023-08-16 15:03:00

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

会员中心 微信客服
客服
回到顶部