找回密码
 立即注册
查看: 407|回复: 4

关于ADC反推工作电压的事宜 | 已解决

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-02 08:29:24

28

主题

162

回帖

1883

积分

金牌会员

积分
1883
发表于 2024-8-1 17:44:43 | 显示全部楼层 |阅读模式
我目前使用的是STC32g的实验箱9.6,我在使用ADC测量内部基准电源,然后调取CHIPID7和CHIPID8的值,最后在中断里运算

以下是我的函数
  1. void ADC_Routine(void) interrupt 5
  2. {
  3.         ADC_FLAG = 0;
  4.         adc_1s = 0;
  5.         adc_r = (ADC_RES * 256) + ADC_RESL;
  6.         vcc = (int)(4096 * VREFH / adc_r);
  7. }
复制代码
在这,没法正确读出数据,当我把vcc = (int)(4096 * VREFH / adc_r);改成vcc = (int)(41 * VREFH / adc_r);之后,就能正确读出数据,不过就是相当于要读出的是2526的,经过这样后,只能读出25.26,int后变成25,虽然不影响使用,但还是有点遗憾
我的判断是,数据溢出了,4096 * VREFH(CHIPID7和CHIPID8的值)的值是1185,4096*1185=4853760,换成二进制就是010010100001000000000000,我估计是到这一步,但我又对程序进行了改动,改成vcc = (int)(4096 * (VREFH / adc_r));,让他先计算VREFH / adc_r这个,这个的结果是0.616866。。。,然后再进行乘4096,依旧是没法正确读出数据
希望来个大神指导指导,还是说,这个得用查询法
对了,加.\STC32_MDU32_V1.1.LIB模块,和不加.\STC32_MDU32_V1.1.LIB的情况我都试过,还是一样
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-8-1 18:03:41 | 显示全部楼层
运算的时候要注意数据类型   简单粗暴一点就是 (int)4096L*VREFH /adc_r;应该能得到你想要的结果
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-02 08:29:24

28

主题

162

回帖

1883

积分

金牌会员

积分
1883
发表于 2024-8-1 19:21:32 来自手机 | 显示全部楼层
我试试
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-8-1 21:41:18 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-02 08:29:24

28

主题

162

回帖

1883

积分

金牌会员

积分
1883
发表于 2024-8-2 00:27:45 | 显示全部楼层
so*** 发表于 2024-8-1 21:41
可以参考视频https://www.stcaimcu.com/plugin.php?id=x7ree_v:x7ree_v&code_7ree=1&id_7ree=361

已经解决了,没把4096声明成long型
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:09 , Processed in 0.215838 second(s), 73 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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