OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5855|回复: 6

ADC转换后float转换成int数据显示为0

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-22
在线时间
2 小时
发表于 2021-9-4 13:17:04 | 显示全部楼层 |阅读模式
2金钱
ADC转换后的数据正常,换算成电压后的数据正常,强制转换后的整型数据不显示,求解决!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3391

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8655
金钱
8655
注册时间
2020-5-11
在线时间
4115 小时
发表于 2021-9-4 14:49:38 | 显示全部楼层
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-4 14:52:58 | 显示全部楼层
仿真 数据跟踪
日常敲键--头秃一片
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-22
在线时间
2 小时
 楼主| 发表于 2021-9-4 19:04:32 | 显示全部楼层

C:\Users\E14\Desktop
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-22
在线时间
2 小时
 楼主| 发表于 2021-9-4 19:05:29 | 显示全部楼层


     int ADC_t;
     
     AdcValue.ADC_ConvertedValueLocal =(float)AdcValue.ADC_ConvertedValue/4096*3.3*1000;
     ADC_t = (int)AdcValue.ADC_ConvertedValue/4096*3300;
     
AdcValue.ADC_ConvertedValueLocal有输出
ADC_t 始终显示0
回复

使用道具 举报

12

主题

3391

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8655
金钱
8655
注册时间
2020-5-11
在线时间
4115 小时
发表于 2021-9-4 20:32:13 | 显示全部楼层
beyongsujun 发表于 2021-9-4 19:05
int ADC_t;
     
     AdcValue.ADC_ConvertedValueLocal =(float)AdcValue.ADC_ConvertedValu ...

有个规矩叫“先乘后除”,了解一下。
AdcValue.ADC_ConvertedValue就是12位ADC的值对吧,
由于整数的除法结果是只保留整数的,由于ADC值小于4096,所以在/4096时得到的值就会为0,后面不管乘多少也还是0.
“先乘后除”的意思就是把乘法写在前面:
ADC_t =(int)AdcValue.ADC_ConvertedValue*3300/4096;


专治疑难杂症
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2021-9-6 00:46:55 | 显示全部楼层
已经算出来浮点数了,那就直接转整形就OK:ADC_t = (int)AdcValue.ADC_ConvertedValueLocal;
不需要再浪费算力(int)AdcValue.ADC_ConvertedValue/4096*3300再来计算一遍。况且这样子计算是错的。
可以写成:ADC_t =(int)((float)AdcValue.ADC_ConvertedValue/4096*3300);
至于为什么要有(float),你要了解一下数据类型,以及不同类型的数据相互运算会怎么进行自动转换,这是C语音基础知识,必须要学习扎实了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-2 20:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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