OpenEdv-开源电子网

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

float强制转化为int型,不成功

[复制链接]

15

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2013-10-15
在线时间
0 小时
发表于 2014-3-6 15:41:35 | 显示全部楼层 |阅读模式



ADC双通道采集,DMA读取数据的程序。图中ADCConvertedValue是ADC通过DMA读取的值,我接的输入一个是3.3V,一个是0,

从图中看,应该是没有传输错误的,但是图中的第二行,ADCConvertedValue[0]=temp; //整数部分

定义的是: float temp;          vu32  ADCConvertedValue[2]={0,0};

ADCConvertedValue[0] 的值,一直是0x0FFF,

请问这是为什么啊……,我还试过ADCConvertedValue[0]=(int)temp;   还是不行啊









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

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-6 15:52:53 | 显示全部楼层
说明AD出来的值都是4095,就是说都是满量程了。检查一下你引脚初始化是不是对了。
回复 支持 反对

使用道具 举报

15

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-3-6 16:34:24 | 显示全部楼层
回复【2楼】ricefat:
---------------------------------
我参考电压选的是3.3V,用的通道1、2,P1口接的是3.3V,P2接的GND。您的意思是GPIO配置问题吗?

//PA1和PA2 作为模拟通道输入引脚                         
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模拟输入引脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
回复 支持 反对

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
12095
金钱
12095
注册时间
2013-3-8
在线时间
1285 小时
发表于 2014-3-6 21:07:02 | 显示全部楼层
回复【楼主位】Vv_M:
---------------------------------
temp=ADCConvertedValue[0]*3.3/4096.0 改为这样,再试试
回复 支持 反对

使用道具 举报

15

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-3-7 09:12:00 | 显示全部楼层
回复【4楼】augustedward:
---------------------------------
还是不行……  SOS
回复 支持 反对

使用道具 举报

15

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-3-7 15:20:38 | 显示全部楼层
问题已经解决了,应该设置一个中间变量。
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-6-25 14:32:19 | 显示全部楼层
回复【6楼】Vv_M:
---------------------------------
为什么要设置中间变量呢
回复 支持 反对

使用道具 举报

15

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2013-10-15
在线时间
0 小时
 楼主| 发表于 2014-8-18 14:20:27 | 显示全部楼层
回复【7楼】龙的传人:
---------------------------------
不好意思好久没上了。
因为ADC是1s采集转换的,DMA是直接获取转换后的值的,随着ADC采集的量的变化而变化。
如果不设置中间变量,DMA中的值就只是最近采集的一个值
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-8-27 18:18:45 | 显示全部楼层
回复【8楼】Vv_M:
---------------------------------
明白,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-3 02:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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