打印

串口如何发送接收浮点数,并进行相应处理

[复制链接]
314|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanglli|  楼主 | 2017-6-9 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口如何发送接收浮点数,并进行相应处理
沙发
lium| | 2017-6-9 21:22 | 只看该作者
整数和小数分开发

使用特权

评论回复
板凳
guoyt| | 2017-6-9 21:23 | 只看该作者

看你单片机的浮点数格式是怎么样的
正常按字节顺序发

使用特权

评论回复
地板
hanwe| | 2017-6-9 21:25 | 只看该作者

上位机接收后,按照浮点数格式再转化成单精度或双精度的数就可以了啊

使用特权

评论回复
5
lium| | 2017-6-9 21:27 | 只看该作者

很好处理啊  上下位机都是自己写的 想如何制定协议都可以啊  上位机根据你下位机的发送方式处理就行了

使用特权

评论回复
6
yufe| | 2017-6-9 21:28 | 只看该作者
typedef union
{

uint8_t buf[4];
float f_value;
}F_T;

F_T  f_send;
F_T  f_recv;

发送f_send.buf[0],f_send.buf[1],f_send.buf[2],f_send.buf[3];
接收 f_recv.buf[0],f_recv.buf[1],f_recv.buf[2],f_recv.buf[3];
使用时就f_recv.f_value,f_send.f_value嘛

使用特权

评论回复
7
llia| | 2017-6-9 21:32 | 只看该作者

不管什么数,对串口来说都是一样的0101数据。

使用特权

评论回复
8
zhanglli|  楼主 | 2017-6-9 21:34 | 只看该作者

我以前没用过结构体之类的编程, uint8_t buf[4];这句是定义一个数组吗,如果是,类型怎么不是uchar的呢     F_T  f_send;
              F_T  f_recv;  还有这两句是什么作用?

使用特权

评论回复
9
wangpe| | 2017-6-9 21:36 | 只看该作者
昏 标示符不一样而已
代表的都是unsigned char;

使用特权

评论回复
10
langgq| | 2017-6-9 21:38 | 只看该作者
为了方便程序移植,他重新定义了uchar类型为u8

使用特权

评论回复
11
zhanglli|  楼主 | 2017-6-9 21:40 | 只看该作者

可以用这个函数实现吗?char* ecvt(double value, int ndigit, int *decpt, int *sign);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1016

主题

9386

帖子

1

粉丝