发 帖  
原厂入驻New
[问答] 请问NRF24L01如何传输传感器数据?
20 nRF24L01
分享
传感器独到的数据不知道怎么传出去....用例程改他传出去都是ascall码,不是具体数据...比如我读到温度是20,怎么把温度传出去而不是传ascall码20
0
2020-6-1 07:40:23   评论 分享淘帖 邀请回答
5个回答
收发都是你自己定义的呀接收端处理就可以了
2020-6-1 16:20:04 评论

举报

将温度拆开传(T为传感器采集的温度),shi=T/10;  ge=T%10;加上一个简单的包头包尾例如0xaa,shi,ge,0xbb。这样接收端接收一个数据包后只需要定义一个变量TT,然后 TT=shi*10+ge就可以了,我还是比较喜欢用ascall码传输的。我有发表的一篇NRF24L01+的学习心得希望对你有用。
2020-6-1 16:28:57 评论

举报

用ASCALL码怎么传呀,能举个例子吗?
2020-6-1 16:44:52 评论

举报

你的发送buff不是32 的吗,最简单的就是弄个32长度的结构体和发送buff定义到一个共同体
typedef struct _data_struct{
u8  data1;   //占用2字节
u16 data2;   //占用2字节
u32 data3;   //占用4字节
float data4; //占用4字节
//可以继续添加,累加和小于等于32就可以了
}data_struct;
typedef union _data_union
{
   u8             tx_buff[32];
   data_struct    data_temp;
}data_union;
主函数里面
data_union  data;
data.data_temp.data1=0x0a;
data.data_temp.data2=0x123;
data.data_temp.data3=0x9876;
data.data_temp.data4=987.654;
for(i=0;i<32;i++)
{
   printf("%x,",data.tx_buff);
}
printf("\r\n");
下面是printf的结果
a,ff,23,1,76,98,0,0,db,e9,76,44,c8,46,0,20,c8,46,0,20,c8,46,0,20,0,0,0,0,5f,2,0,8,
上面实现了,你每次nrf发送data.tx_buff就可以了
这种方法的好处是,不用复制不同类型的数据到发送buff还要自己定位了
2020-6-1 17:03:20 评论

举报

定义比如说 25.5度 你可以放大十倍后去掉小数,然后 a=255/100=2;   b=255%100/10=5; c=255%10=5; 分别得到温度的每个位 然后转成ascll码a=a+0x30;b=b+0x30; c=c+0x30; 为什么加上0x30,0x30在ascll中对应为0x30,就是说0x30='0',字符型的0. 而非数值0,那么a='2',b='5',c='5'。具体你可以查看ascll码表,这样还有一个好处就是在用串口打印后用文本格式显示方便调试更直观,还有就是限定了数据包中数据部分的组成为0x30-0x39(对应为字符0-9),这样数据包更可靠一些,更容易区分数据包的数据部分和其他部分(如包头包尾)怎么讲呢举个例子;我定义一个传输数据包协议为0xaa(数据包头),a,b,c,0xbb(数据包尾);添加了包头和包尾使其接收端更容易识别,数据传输更可靠。接收端接收后T=(a-0x30)*100+(b-0x30)*10+(c-0x30);//得到放大十倍后的温度,就可以根据需求来用T。  如果说不用ascll格式传输,并且我以简单数据包的形式传输,0xaa, 0xff(255), 0xbb;在这样看来没有问题,假如说我读到的温度是17.0度,放大十倍后是170度,那么就会出现这种情况-0xaa,0xaa(T),0xbb;//这种情况下出现了两个包头,数据接收端就会出错。当然如果不用ascll格式传输也可以,小心使用就行。其实这些数据传输都是一些简单的,自己随便定义,好用就行。像传输一些秘密的数据,为了不容易被别人破解,都对数据进行一些算法加密,而且传输协议也比较复杂,发送的数据需要接收端使用协定好的算法将数据解出。
当然你用的是NRF24L01传输,你不用考虑包头包尾,直接把你要发送的数据,拆开转成ascll的格式,通过指令放入发送缓存寄存器,可能你的数据长度达不到32位,只用了几位,空着就空着不去管就是了,接收端只要判断接收到,就从接收缓存器里读出来就好了,如果是NRF24L01+的话可以调整数据包的长度。具体你可以看一下说明书。
以上均为个人看法。
2020-6-1 17:10:15 评论

举报

只有小组成员才能发言,加入小组>>

103个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

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