找回密码
 立即注册
查看: 448|回复: 9

求一个用STC8H1K08-36I-TSSOP20单片机ADC查看4.2V电池电量的制作方法

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:290
  • 最近打卡:2026-06-07 18:26:15
已绑定手机

17

主题

120

回帖

812

积分

高级会员

积分
812
发表于 2025-12-17 11:58:53 | 显示全部楼层 |阅读模式
求一个用STC8H1K08-36I-TSSOP20单片机ADC查看4.2V电池电量的制作方法

没有玩过ADC求大神指导
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:153
  • 最近打卡:2026-07-21 14:44:21
已绑定手机

5

主题

356

回帖

6446

积分

论坛元老

积分
6446
发表于 2025-12-17 13:12:25 | 显示全部楼层
先试着玩一下呗,手册里是有ADC的例子的。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2026-07-23 09:42:38

851

主题

1万

回帖

2万

积分

管理员

积分
24424
发表于 2025-12-17 15:45:56 | 显示全部楼层
如  是电池给 MCU-VCC供电,
那就 ADC_VREF+直接短接到 MCU-VCC就行了



截图202512171545455194.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2026-07-23 09:42:38

851

主题

1万

回帖

2万

积分

管理员

积分
24424
发表于 2025-12-17 15:47:38 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:804
  • 最近打卡:2026-07-22 00:57:34
已绑定手机

51

主题

2783

回帖

2893

积分

荣誉版主

积分
2893
发表于 2025-12-17 16:40:51 | 显示全部楼层
无论如何,你测到的只是电池的电压,而不是电量
电量是不能直接测量的,
要么使用电参测量设备得到电池电量和电压关系表,
要么使用电量管理芯片,实时监测充放电电流然后积分统计得到电量。
~~~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:729
  • 最近打卡:2026-07-10 16:55:21
已绑定手机

96

主题

7372

回帖

1万

积分

超级版主

积分
13993
发表于 2025-12-17 18:28:52 | 显示全部楼层

直接测电压是很容易的
要是测容量,需要两个ADC同时测量电压电流,库仑计算法
尝试做过,用失调几μV的RRIO运放,电流零点也不准,需要软件校准,最好有负电源轨给运放

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:290
  • 最近打卡:2026-06-07 18:26:15
已绑定手机

17

主题

120

回帖

812

积分

高级会员

积分
812
发表于 2025-12-18 11:17:44 | 显示全部楼层
Debu*** 发表于 2025-12-17 18:28
直接测电压是很容易的
要是测容量,需要两个ADC同时测量电压电流,库仑计算法
尝试做过,用失调几μV的RRI ...

就是测电压就行,大佬有没有做过的方案分享一下

点评

8H8K64U,AiCube的CDC发送VREF程序供参考 CH15=ADC_Convert(15); CH10=ADC_Convert(10); VREF=(unsigned int)((unsigned long)BGV*4096UL/(unsigned long)CH15); V_CH10=(unsigned int)((unsigned long)VREF*(unsi  详情 回复 发表于 2025-12-18 12:14
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:290
  • 最近打卡:2026-06-07 18:26:15
已绑定手机

17

主题

120

回帖

812

积分

高级会员

积分
812
发表于 2025-12-18 11:19:20 | 显示全部楼层
lcws*** 发表于 2025-12-17 13:12
先试着玩一下呗,手册里是有ADC的例子的。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:729
  • 最近打卡:2026-07-10 16:55:21
已绑定手机

96

主题

7372

回帖

1万

积分

超级版主

积分
13993
发表于 2025-12-18 12:14:34 | 显示全部楼层
隐*** 发表于 2025-12-18 11:17
就是测电压就行,大佬有没有做过的方案分享一下


8H8K64U,AiCube的CDC发送VREF程序供参考

CH15=ADC_Convert(15);
CH10=ADC_Convert(10);
VREF=(unsigned int)((unsigned long)BGV*4096UL/(unsigned long)CH15);
V_CH10=(unsigned int)((unsigned long)VREF*(unsigned long)CH10/4096UL);
printf("BGV=%dmV CH15=%d Vref=%dmV CH10=%d V_CH10=%dmV\r\n",BGV,CH15,VREF,CH10,V_CH10);

CDC发送VREF.zip (48.39 KB, 下载次数: 10)
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:290
  • 最近打卡:2026-06-07 18:26:15
已绑定手机

17

主题

120

回帖

812

积分

高级会员

积分
812
发表于 2025-12-18 14:21:23 | 显示全部楼层
Debu*** 发表于 2025-12-18 12:14
8H8K64U,AiCube的CDC发送VREF程序供参考

CH15=ADC_Convert(15);

非常感谢
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-23 16:29 , Processed in 0.089119 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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