你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
stm8如何进行floa和long运算?
[复制链接]
zqszqs0001
提问时间:2018-5-29 11:55 /
问答
是否解决:
求助:
stm8用到floa和long运算,运行时发现有问题,
请问各位,
stm8如何进行floa和long运算?
赞
0
收藏
0
评论
6
分享
发布时间:2018-5-29 11:55
举报
请先
登录
后回复
6个回答
zqszqs0001
回答时间:2018-5-29 13:22:37
a0a.1 32b0c
本帖最后由 zqszqs0001 于 2018-5-29 13:23 编辑
PWM_Hz=uart2_rx[5]&0x0f;
PWM_Hz=PWM_Hz+10*(uart2_rx[5]>>4);
PWM_Hz=PWM_Hz+100*(uart2_rx[4]&0x0f);
PWM_Hz=PWM_Hz+1000*(uart2_rx[4]>>4);
PWM_Hz=PWM_Hz+10000*(uart2_rx[3]&0x0f);
PWM_Hz=PWM_Hz+100000*(uart2_rx[3]>>4);
PWM_Hz为float或者unsigned long型;uart2_rx[]为byte型;
uart2_rx[3]=0x12,uart2_rx[4]=0x34,uart2_rx[5]=0x56,运行后PWM_Hz应该是123456,但是,运行后PWM_Hz不是这个数。
为什么?
赞
1
评论
回复
支持
1
反对
0
STM1024
回答时间:2018-5-29 12:57:13
a0a.1 32b0c
有啥问题,丢出代码大家帮你看看?
赞
0
评论
回复
支持
反对
七哥
回答时间:2018-5-29 14:14:21
a0a.1 32b0c
一般8位机的long型是32位的,int是16位,float和double也是32位。
具体stm8的话,写个程序看看就知道是几位的了。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
andey
回答时间:2018-5-29 18:05:40
a0a.1 32b0c
提示:
作者被禁止或删除 内容自动屏蔽
赞
0
评论
回复
支持
反对
andey
回答时间:2018-5-29 18:18:05
a0a.1 32b0c
提示:
作者被禁止或删除 内容自动屏蔽
赞
0
评论
回复
支持
反对
feixiang20
回答时间:2018-5-29 23:01:00
a0a.1 32b0c
直接用(float)a转换,只是精度会有下降,在32位系统中float有1个符号位+8个2的幂次位+23个精度位=32位,long有1个符号位+31个精度位=32位,有效数字会有损失。
评分
参与人数
1
蝴蝶豆
+3
收起
理由
zero99
+ 3
查看全部评分
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
PWM_Hz=uart2_rx[5]&0x0f;
PWM_Hz=PWM_Hz+10*(uart2_rx[5]>>4);
PWM_Hz=PWM_Hz+100*(uart2_rx[4]&0x0f);
PWM_Hz=PWM_Hz+1000*(uart2_rx[4]>>4);
PWM_Hz=PWM_Hz+10000*(uart2_rx[3]&0x0f);
PWM_Hz=PWM_Hz+100000*(uart2_rx[3]>>4);
PWM_Hz为float或者unsigned long型;uart2_rx[]为byte型;
uart2_rx[3]=0x12,uart2_rx[4]=0x34,uart2_rx[5]=0x56,运行后PWM_Hz应该是123456,但是,运行后PWM_Hz不是这个数。
为什么?
具体stm8的话,写个程序看看就知道是几位的了。
评分
查看全部评分
评分
查看全部评分