智能车制作

标题: 多位数据串口怎么发送 [打印本页]

作者: 奔驰飞思卡尔    时间: 2012-5-23 13:20
标题: 多位数据串口怎么发送
32位的数据,怎么分开,在串口上发送,比如定义的 float Angle,把Angle在串口上怎么发送出去

作者: lsdoo·    时间: 2012-5-23 14:14
浮点数……蛋疼啊……不知道
作者: 奔驰飞思卡尔    时间: 2012-5-23 15:02
lsdoo· 发表于 2012-5-23 14:14
浮点数……蛋疼啊……不知道

加个口口聊吧,1247716291

作者: 基佬    时间: 2012-5-23 15:22
1.精度够的话扩大为int
2.用联合
作者: 奔驰飞思卡尔    时间: 2012-5-23 15:55
基佬 发表于 2012-5-23 15:22
1.精度够的话扩大为int
2.用联合

加个qq吧1247716291
作者: etoah    时间: 2012-5-23 17:01
先乘一个数转化为整型,如:你想要小数点后的三位数就乘1000;  (25.3456*1000->25345),尔后分为高16位和低16位;  再把两个16位转化为高8位和低8位就行了
设数为 a ,数据存在一个数组中char data[4];
b=(int)(a*1000);
data[3]=(b/65536 )/256;
data[2]=(b/65536 )%256;
data[1]=(b%65536 )/256;
data[0]=(b%65536 )%256;

再反过来就行了,我抛个板砖,求大神指教

  

作者: xinmengwangran    时间: 2012-5-23 17:54
etoah 发表于 2012-5-23 17:01
先乘一个数转化为整型,如:你想要小数点后的三位数就乘1000;  (25.3456*1000->25345),尔后分为高16位和低1 ...

呵呵 不错 测速也可这样返回呀 非常感谢

作者: 奔驰飞思卡尔    时间: 2012-5-26 17:22
etoah 发表于 2012-5-23 17:01
先乘一个数转化为整型,如:你想要小数点后的三位数就乘1000;  (25.3456*1000->25345),尔后分为高16位和低1 ...

谢谢
作者: 爱你一万年    时间: 2012-5-27 11:30
etoah 发表于 2012-5-23 17:01
先乘一个数转化为整型,如:你想要小数点后的三位数就乘1000;  (25.3456*1000->25345),尔后分为高16位和低1 ...

乘以1000后,在什么时候除以1000呢,有12位AD转换,最大值4096,太大了显示不了,





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2