OpenEdv-开源电子网

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

单精度转双精度的警告

[复制链接]

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
发表于 2018-8-30 17:20:34 | 显示全部楼层 |阅读模式
1金钱
STM32F407,使用了DSP库,有一个公式在编译时有警告:protocol.c(793): warning:  #1035-D: single-precision operand implicitly converted to double-precision,查阅了资料知道需要在数字后面加个f才能解决这个警告,但我这个公式,怎么能加f了。能帮我看下这个该怎么改下了?


float depth0 = 0x0;
u8 vertical_height = 0x0;
u8 pull_down_len = 0x0;
float y_angle1 = 0;
depth0 = (float)(vertical_height+pull_down_len*arm_sin_f32(y_angle1*pi/180));

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

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-8-30 17:27:36 | 显示全部楼层
我猜是这函数arm_sin_f32返回是个DOUBLE类型的

试试这个
depth0 = (float)(vertical_height+pull_down_len*(float)arm_sin_f32(y_angle1*pi/180));

回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-8-30 18:16:58 | 显示全部楼层
您说的有道理,但是还是不行?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-8-30 18:41:54 | 显示全部楼层
lqab1983 发表于 2018-8-30 18:16
您说的有道理,但是还是不行?

那就是它的参数也是double类型的, 再试试这样改

depth0 = (float)(vertical_height+pull_down_len*(float)arm_sin_f32((double)(y_angle1*pi/180)));
回复

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-8-30 19:01:57 | 显示全部楼层
还是不行
11.png
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 17:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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