串口发送浮点型数据的话要怎么处理?

2019-07-21 02:46发布

串口发送浮点型数据的话要怎么处理?,把一个浮点型数据拆成四个八位的数据来发送吗?  这样分开发送的话数据的话,那我在上位机处理单片机发送的数据的时候因为数据是一直在不停的发不停的收的,我怎么知道要把哪四个数据在结合起来呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
正点原子
1楼-- · 2019-07-21 06:00
printf("%f ",fx);
fx就是浮点数.
aleda303
2楼-- · 2019-07-21 08:31
本帖最后由 aleda303 于 2019-6-20 14:41 编辑

你要发送原始数据流 还是 格式化输出?
如果是格式化 按原子说的 ,用sprintf / printf;

如果发送原始内存数据流, 可按下面发送,

发送

float a = 1.23; double b=3.2;
SendBytes( (u8*)&a ,sizeof(a) );
SendBytes( (u8*)&b ,sizeof(b) );   //修改 这地方打错啦

上位机接到的 十六进制码,再按同样格式转回来。
如 分别接收到  s1[4] s2[8] 里面, 如果是float 就是4个字节
*(float*)&s1 就是 a
*(double*)&s2 就是b


你坏死了
3楼-- · 2019-07-21 09:33
 精彩回答 2  元偷偷看……
psrazil
4楼-- · 2019-07-21 14:21
回复【3楼】aleda303:
---------------------------------
学习了!!  正好同求这个


想问下,我用NRF24L01 将  FLOAT型数据 发送过去  
先sprintf语句 将 float型数据 转化成一个字符数组

到了下位机要如何 转化回来float型
aleda303
5楼-- · 2019-07-21 17:15
回复【5楼】psrazil:
---------------------------------
 反向 解析回来。

StrToInt 
StrToFloat
psrazil
6楼-- · 2019-07-21 20:57
 精彩回答 2  元偷偷看……

一周热门 更多>