你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8如何进行floa和long运算?

[复制链接]
zqszqs0001 提问时间:2018-5-29 11:55 /
求助:
stm8用到floa和long运算,运行时发现有问题,
请问各位,
stm8如何进行floa和long运算?
收藏 评论6 发布时间:2018-5-29 11:55

举报

6个回答
zqszqs0001 回答时间:2018-5-29 13:22:37
本帖最后由 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不是这个数。

为什么?
STM1024 回答时间:2018-5-29 12:57:13
有啥问题,丢出代码大家帮你看看?
七哥 回答时间:2018-5-29 14:14:21
一般8位机的long型是32位的,int是16位,float和double也是32位。
具体stm8的话,写个程序看看就知道是几位的了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

andey 回答时间:2018-5-29 18:05:40
提示: 作者被禁止或删除 内容自动屏蔽
andey 回答时间:2018-5-29 18:18:05
提示: 作者被禁止或删除 内容自动屏蔽
feixiang20 回答时间:2018-5-29 23:01:00
直接用(float)a转换,只是精度会有下降,在32位系统中float有1个符号位+8个2的幂次位+23个精度位=32位,long有1个符号位+31个精度位=32位,有效数字会有损失。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版