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

2019-07-21 02:46发布

串口发送浮点型数据的话要怎么处理?,把一个浮点型数据拆成四个八位的数据来发送吗?  这样分开发送的话数据的话,那我在上位机处理单片机发送的数据的时候因为数据是一直在不停的发不停的收的,我怎么知道要把哪四个数据在结合起来呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
aleda303
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


一周热门 更多>