野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12312|回复: 3

AD采集,模拟值小数部分出现问题

[复制链接]
发表于 2014-12-21 09:28:46 | 显示全部楼层 |阅读模式
AD读取公式:
&#8203;for(i=0;i<8;i++)
{
ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096);   //读取 AD的值
}

&#8203;模拟值整数部分:
for(i=0;i<8;i++)
{
           ge=(uint32_t)ADC_ConvertedValueLocal;
}
&#8203;
&#8203;模拟值小数部分:
&#8203;for(i=0;i<8;i++)
{
dian0=ADC_ConvertedValueLocal-ge;
dian=(uint32_t)(dian0*1000000);
}
&#8203;我的想法是:ADC_ConvertedValueLocal得到的应该是浮点值2.111之类的,然后ge被转换成2,之后再乘以1000,就应该可以显示模拟值了。可是模拟值的部分为0.这是什么原因?&#8203;
回复

使用道具 举报

发表于 2014-12-22 09:10:12 | 显示全部楼层
你的dian0是什么类型
回复 支持 反对

使用道具 举报

发表于 2014-12-22 09:24:12 | 显示全部楼层
其实可以简单点实现
float ADC_ConvertedValueLocal;
uint32_t dian;
ADC_ConvertedValueLocal=(float)ADC_ConvertedValue*(3.3/4096);
dian=((uint32_t)(ADC_ConvertedValueLocal*1000000))%1000000;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-22 13:30:58 | 显示全部楼层
flyleaf 发表于 2014-12-22 09:10
你的dian0是什么类型

float 浮点型的
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 20:40 , Processed in 0.036712 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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