OpenEdv-开源电子网

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

nrf24L01 如何实现多机通讯

[复制链接]

9

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-7-6
在线时间
0 小时
发表于 2013-7-19 12:05:20 | 显示全部楼层 |阅读模式
nrf24L01  如何实现多机通讯,我知道有很多歌通道 ,但是不知道接受主机的那个怎么识别是哪台从机发来的讯号,或者说是哪个通道发来的;还有从机的程序是不是每个使能的通道是不一样的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-7-19 12:33:31 | 显示全部楼层
拜读下<span class="Apple-style-span" style="font-family:Simsun;"><span class="Apple-style-span" style="line-height:normal;white-space:nowrap;">chinafox坛友的大作吧:</span></span><a href="http://www.openedv.com/jforum.htm?module=search&amp;action=search&amp;search_keywords=+NRF24L01%E7%9A%84%E5%BA%94%E7%94%A8&amp;match_type=title&amp;search_forum=&amp;sort_by=relevance" target="_blank">http://www.openedv.com/jforum.htm?module=search&amp;action=search&amp;search_keywords=+NRF24L01%E7%9A%84%E5%BA%94%E7%94%A8&amp;match_type=title&amp;search_forum=&amp;sort_by=relevance</a>
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-7-19 13:37:23 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>已拜读,添脚中
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-7-31 15:06:40 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>可是教程中没有接受信号之后识别接受通道的语句,也就是不管哪个通道的都行,我想弄一个接受端,2个发射端,这样接收端就得识别接收通道来辨别是哪个板子发射过来的信号啊,手册说是读状态寄存器的1—3位,可是代码不会写,求指点
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-7-31 15:21:05 | 显示全部楼层
回复【4楼】HYK:
<br>---------------------------------
<br>字节写协议之类的吧.
<br>人是活的,东西是死的.
<br>看你能不能用活了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-8-1 20:55:23 | 显示全部楼层
回复【5楼】正点原子:
<br>---------------------------------
<br>原子哥,NRF24L01接收数据后接收端识别弄好了,可以分别识别5个发射端发射的数据,但是发射端一多了,接收端的彩屏只能显示2个通道来的数据,是不是无线信号强度大的抢占通道能力强啊,这样是不是要设置5个发射端的发射时序问题啊,一个发完了下一个发,或是这两个发完了下两个发??求原子哥给个思路……
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2013-8-1 22:21:35 | 显示全部楼层
回复【6楼】HYK:
<br>---------------------------------
<br>NRF组网(比如几十个),这就得你定义一个很好的协议,我觉得是一主多从,这样比较好做。
<br>假设30个机器。其中1台作为主机,其他29个从机。
<br>我采用主机地址查询的方式,29个从机每个从机地址都不一样,而主机知道所有从机的地址,每次就通过地址查询从机,只有地址符合的从机,才做出应答,这样主机就可以和任意一个从机通信。而且不受其他从机干扰。
<br>优点就是:理论上可以组无限个节点。
<br>缺点就是:速度比较慢,必须一个个查询。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

190

帖子

0

精华

高级会员

Rank: 4

积分
758
金钱
758
注册时间
2012-8-23
在线时间
71 小时
发表于 2013-9-16 22:29:19 | 显示全部楼层
马克~
回复 支持 反对

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-10-8
在线时间
0 小时
发表于 2013-10-21 00:21:38 | 显示全部楼层
回复【7楼】正点原子:
<br>---------------------------------
<br>请问这个在NRF24L01_RX_Mode();和NRF24L01_TX_Mode();需要怎样设置呢
回复 支持 反对

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1633
金钱
1633
注册时间
2012-8-28
在线时间
71 小时
发表于 2013-10-21 13:50:37 | 显示全部楼层
回复【楼主位】sword:
<br>---------------------------------
<br>http://user.qzone.qq.com/750273008/infocenter#!app=2&via=QZ.HashRefresh&pos=1368843397
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2014-12-25 09:53:41 | 显示全部楼层
您好,你用过无线吗,最新推荐WLK01L39无线应用首选-隔墙效果极佳
<br>样品75折体验:http://item.taobao.com/item.htm?id=36264057764
<br>选购3个WLK01L39以上即可免费获取测试板:http://item.taobao.com/item.htm?id=40102876157批量更优惠
<br>WLK01L39开发包资料百度网盘下载连接:http://pan.baidu.com/s/1Go9YI
<br>无线数据传输方面的有空看看,欢迎交流
<br>
<br>基本工作原理:
<br>模块平时处于接收状态,一旦收到数据,就把收到的数据通过UART输出,这时你可以用单片机来个中断接收函数啊,把数据读取存储,
<br>发送数据的时候把要发的数据通过UART送给模块,他就自动发送,发送完毕,自动切换到接收模式
<br>
<br>====================================================================
<br>例如跳频多点通讯,
<br>====================================================================
<br>例如
<br>当主机为WLK01L39模块,且主机节点A频率值为470MHZ(470000转换为16进制为:0x07&nbsp;0x2B&nbsp;0xF0),
<br>&nbsp;
<br>从机B频率参数:471MHZ(0x07&nbsp;0x2f&nbsp;0xD8)&nbsp;,从机C频率参数:472MHZ(0x07&nbsp;0x33&nbsp;0xC0)
<br>主机可以通过切换频率参数来分别和B&nbsp;C节点通讯,方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x2f&nbsp;0xD8
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x2f&nbsp;0xD8&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x9F&nbsp;0x00&nbsp;0x03&nbsp;0x07&nbsp;0x33&nbsp;0xC0
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;0x07&nbsp;0x33&nbsp;0xC0后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>例如变址多点通讯,
<br>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<br>&nbsp;
<br>例如
<br>当主机为WLK01L39模块,
<br>主机A本机地址1:0x01,本机地址2:0x01,
<br>从机B本机地址1:0x02&nbsp;,本机地址2:0x01&nbsp;,
<br>从机C本机地址1:0x03,本机地址2:0x01&nbsp;,&nbsp;&nbsp;
<br>主机可以通过切换目标地址参数来分别和B&nbsp;C节点通讯,因为在频率一样的前提下
<br>只有主机的目标地址和从机的本机地址一致时,对应从机才能与其建立通讯,并接收数据方法如下
<br>&nbsp;
<br>第一步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第二步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x02&nbsp;
<br>第三步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x02&nbsp;后再&nbsp;设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第四步-&gt;&nbsp;输入要传的数据即可将数据传输给B节点
<br>&nbsp;
<br>&nbsp;
<br>第五步-&gt;&nbsp;设置电平SETA=1&nbsp;SETB=1&nbsp;进入参数设置模式
<br>第六步-&gt;&nbsp;0xFF&nbsp;0x56&nbsp;0xAE&nbsp;0x35&nbsp;0xA9&nbsp;0x55&nbsp;0x8E&nbsp;0x00&nbsp;0x01&nbsp;0x03
<br>第七步-&gt;&nbsp;等待返回0x24&nbsp;0x24&nbsp;0x24&nbsp;&nbsp;0x03&nbsp;后再设置电平SETA=0&nbsp;SETB=0&nbsp;进入正常收发模式
<br>第八步-&gt;&nbsp;输入要传的数据即可将数据传输给C节点
<br>&nbsp;
<br>更多节点以此类推即可
<br>&nbsp;
<br>###################################################################
<br>多点通讯还有一种最简单的方式,就是点名通讯
<br>###################################################################
<br>1.主机和从机的参数都完全一样
<br>2.都处于正常收发模式
<br>3.当主机A发0x01(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机B视0x01为上传数据命令,立刻发射要上传数据,然后主机A会收到B上传数据,而从机C视0x01为无效指令,不发送数据
<br>&nbsp;&nbsp;当主机A发0x02(该指令可自定义),
<br>&nbsp;&nbsp;当从机B和从机C都收到0x01,
<br>&nbsp;&nbsp;从机C视0x02为上传数据指令,立刻发射要上传数据,然后主机A会收到C上传数据,而从机B视0x02为无效指令,不发送数据
<br>更多节点以此类推即可
<br>------------------
<br>NRF905&nbsp;RF903&nbsp;CC1100&nbsp;CC2500&nbsp;CC1020&nbsp;NRF2401&nbsp;NRF24L01&nbsp;无线数传芯片/模块性能汇总及应用指南
<br>你好,我们是无线制造供应商,欢迎交流
<br>QQ:35625400&nbsp;&nbsp;&nbsp;&nbsp;MSN:ll88mm88@hotmail.com&nbsp;
<br>HONE:13704018223&nbsp;&nbsp;&nbsp;陈工
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复 支持 反对

使用道具 举报

2

主题

14

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2015-1-19
在线时间
9 小时
发表于 2015-2-15 22:10:02 | 显示全部楼层
markkk
回复 支持 反对

使用道具 举报

9

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
285
金钱
285
注册时间
2015-4-19
在线时间
75 小时
发表于 2015-5-25 17:06:07 | 显示全部楼层
前辈做出来没?如果用多通道的话怎么发送给不同的通道不同的数据,如果采用原子老大的方法的话要怎么判断接收端是否在线呢?
学习学习。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-10-1 10:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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