OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4498|回复: 13

如何用NRF传送浮点型数组?

[复制链接]

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
发表于 2018-4-28 11:21:13 | 显示全部楼层 |阅读模式
近期在用NRF,但是要传的数组是浮点型的64个温度值,不知道该如何转换比较好
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-4-28 11:23:04 | 显示全部楼层
百度有查到,直接把float数据拆分为4个unsigned char,发过去,在合并为float。但是发数组的时候不知道该怎么用代码实现
回复 支持 反对

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-4-28 14:11:47 | 显示全部楼层
共用体啊,
union myfloat
{
      char  i[4];
      float  j;
}
union myfloat temp[64];
你的温度值直接存放在temp[i].j
发送的时候发送temp[i].i[0],temp[i].i[1],temp[i].i[2],temp[i].i[3]
接收到之后需要用的时候直接用temp[i].j即可
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-4-29 10:03:33 | 显示全部楼层
szczyb1314 发表于 2018-4-28 14:11
共用体啊,
union myfloat
{

- - ,以前学的时候都没有用过这个,我回去学一下 ,试试看,谢谢解答
回复 支持 反对

使用道具 举报

24

主题

130

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2016-7-20
在线时间
137 小时
发表于 2018-4-29 13:54:21 | 显示全部楼层
最简单的方法用一个字符指针指向这个浮点数组首元素地址
回复 支持 反对

使用道具 举报

2

主题

46

帖子

1

精华

高级会员

Rank: 4

积分
560
金钱
560
注册时间
2017-5-8
在线时间
136 小时
发表于 2018-4-30 11:22:22 | 显示全部楼层
温度你就x100传short过去   然后再/100  不就好了?
回复 支持 反对

使用道具 举报

8

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2017-12-4
在线时间
86 小时
发表于 2018-4-30 20:05:52 来自手机 | 显示全部楼层
興趣使然 发表于 2018-4-28 11:23
百度有查到,直接把float数据拆分为4个unsigned char,发过去,在合并为float。但是发数组的时候不知道该怎 ...

移位运算,分解成四个u8
回复 支持 反对

使用道具 举报

108

主题

194

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2016-6-29
在线时间
165 小时
发表于 2018-4-30 22:17:34 | 显示全部楼层
共用体 最简单
回复 支持 反对

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-2 09:03:59 | 显示全部楼层
興趣使然 发表于 2018-4-29 10:03
- - ,以前学的时候都没有用过这个,我回去学一下 ,试试看,谢谢解答

这个共用体直观易懂,简单的就是用一个字符指针指向这个浮点数组首元素地址,其实也是共用体的思想;
一个float型变量占4byte内存,用字符型指针指向float变量,发送4个byte(char型),也是一样的
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复 支持 反对

使用道具 举报

25

主题

161

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2017-7-17
在线时间
149 小时
发表于 2018-5-2 10:50:43 来自手机 | 显示全部楼层
自己构造个printf函数,用printf发浮点数,
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-5-2 16:13:21 | 显示全部楼层
szczyb1314 发表于 2018-5-2 09:03
这个共用体直观易懂,简单的就是用一个字符指针指向这个浮点数组首元素地址,其实也是共用体的思想;
一 ...

嗯,谢谢了,现在用共用体解决了,确实直观易懂,感觉大家都好有方法,看来还是我C语言学的太马虎了
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-5-2 16:14:21 | 显示全部楼层
fEndman 发表于 2018-4-30 20:05
移位运算,分解成四个u8

谢谢回复,这个我不知道用代码怎么实现好- - ,现在用共用体解决了,我C语言学的太马虎了,得去补补了
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-5-2 16:15:22 | 显示全部楼层
王建峰 发表于 2018-5-2 10:50
自己构造个printf函数,用printf发浮点数,

还有这种操作- -
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-4-22
在线时间
17 小时
 楼主| 发表于 2018-5-2 20:27:01 | 显示全部楼层
szczyb1314 发表于 2018-4-28 14:11
共用体啊,
union myfloat
{

朋友,有空帮我看下,我新发的那个帖子吗,现在数据转换好了, 发送的时候遇到点麻烦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 07:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表