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

为啥我ADC转换锂电池出来的是2.5左右,而万用表却是3.3

[复制链接]
p13692166934 提问时间:2019-4-2 13:58 /
测试代码如下:
uint32_t ResultVolt = 0;
  uint8_t i;
  for(i=0; i<8; i++)
  {                                              //等待转换完成
    while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
    ResultVolt +=(uint32_t) ADC_GetConversionValue(ADC1);
  }
  ResultVolt = ResultVolt >> 3;                  //求平均(除8)
  ResultVolt = (ResultVolt*3300) >> 12;          //计算得到1000倍的电压值(整数值, 无小数点)
  return ResultVolt;
收藏 评论4 发布时间:2019-4-2 13:58

举报

4个回答
932837498@qq.co 回答时间:2019-4-2 14:34:49
看看你的ADC基准电压是不是选择的内部2.5V

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

p13692166934 回答时间:2019-4-2 14:42:51
932837498@qq.co 发表于 2019-4-2 14:34
看看你的ADC基准电压是不是选择的内部2.5V

是不是内部基准值是ADC拿来对比的,内部0-2.7,电池0-7.8,按比例来对比?
wenyangzeng 回答时间:2019-4-2 14:44:45
本帖最后由 wenyangzeng 于 2019-4-2 17:28 编辑

1、已经是float类型的小数运算了,不能用整数运算;
2、楼主把那个ResultVolt放在括号内一起右移12位好像有点问题。
3、电压的计算公式应该是(float)(3300 mV÷4096)×(ADC转换值8次累加值>>3),

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

caoenq 回答时间:2019-11-1 08:54:25
像是硬件的问题

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版