网老四 发表于 2025-8-26 21:40:54

    adc_value = ( (ADC_RES & 0x03) << 8 ) | ADC_RESL;// 组合10位结果
你没配置ADC采样结果对齐方式,默认是左对齐,,但你的计算公式却按照右对齐来的.所以很小的信号波动被你算成巨大跳动.

另外不建议直接对外设的寄存器运算,有些外设寄存器直接运算会出问题.
(ADC_RES & 0x03) << 8)这里计算,单字节寄存器左移8位是什么结果就很难说了.
建议先把ADC结果高低字节分别保存在变量里,再合成10位的结果.

梁工 发表于 2025-8-26 22:43:12

Printy陈 发表于 2025-8-26 20:53
把ACS712ELCTR-05B-T(XBLW)去掉后,单片机ADC接入5V后,数据很稳,这个苾片怎么会对单片机产生这么大的影响 ...

示波器看看ACS712的输出。这个芯片我也常用,没遇到过问题。

Printy陈 发表于 7 天前

梁工 发表于 2025-8-26 22:43
示波器看看ACS712的输出。这个芯片我也常用,没遇到过问题。

芯片买成ACS712ELCTR-05B-T(XBLW) 这个对应10A,而实际电流只有1A,反应很小,这个有什么办法解决吗

梁工 发表于 7 天前

Printy陈 发表于 2025-8-27 09:46
芯片买成ACS712ELCTR-05B-T(XBLW) 这个对应10A,而实际电流只有1A,反应很小,这个有什么办法解决吗 ...

ACS712ELCTR-05B-T这是+-5A的,没有任何办法改变其量程的。
我用得最多的是ACS712ELCTR-20A-T,这是+-20A的。

Printy陈 发表于 7 天前

梁工 发表于 2025-8-27 09:53
ACS712ELCTR-05B-T这是+-5A的,没有任何办法改变其量程的。
我用得最多的是ACS712ELCTR-20A-T,这是+-20A ...

好的,ACS712ELCTR-05-T是5A的,带B的说是10A的

Printy陈 发表于 7 天前

最后发现这个思路最大败笔:负载加大后,ACS712 输出还没来的及变,78127912 先内部保护降压了,根本就没有给电流升高的机会。
页: 1 [2]
查看完整版本: 15W408AS AD采集数据波动大