OpenEdv-开源电子网

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

NRF24L01多发一,不能按照一定的顺序吗?

[复制链接]

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-1-7
在线时间
8 小时
发表于 2015-12-2 21:18:12 | 显示全部楼层 |阅读模式
5金钱
我的是2发1收,接收端希望的接收状态是接收完A后接收B,(因为需要将AB的数据合成一帧),有什么好办法吗,现在是通道调通了,但是一个通道要接收好久之后,才会换另一个通道接收,有没办法缩短这个时间呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-12-2 21:31:01 | 显示全部楼层
不知道楼主在讲什么,6通道还有排位?没遇到过,呵呵
学无止境
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-1-7
在线时间
8 小时
 楼主| 发表于 2015-12-2 21:41:32 | 显示全部楼层
回复【2楼】jermy_z:
<br>---------------------------------
<br>我现在的程序是不管有没有&nbsp;两个发送端直接发送,然后接收端只有一个,我以为接收端接收通道1后,能很快接收通道2的数据,但是现在问题是收了好多次通道1后才能接收通道2的数据。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-12-2 21:42:40 | 显示全部楼层
帮顶。。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-12-2 21:47:35 | 显示全部楼层
回复【3楼】手手挤挤:
<br>---------------------------------
<br>那是你代码有问题
学无止境
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-1-7
在线时间
8 小时
 楼主| 发表于 2015-12-2 21:55:24 | 显示全部楼层
回复【5楼】jermy_z:
<br>---------------------------------
<br>是不是不能同时接收呢?代码我对照了论坛上&nbsp;&nbsp;6对1的了&nbsp;&nbsp;,都能收到,但就是不能同时收到
回复

使用道具 举报

70

主题

6697

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12691
金钱
12691
注册时间
2012-11-26
在线时间
3710 小时
发表于 2015-12-2 21:56:30 | 显示全部楼层
回复【6楼】手手挤挤:
<br>---------------------------------
<br>可以同时接收
学无止境
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2014-1-7
在线时间
8 小时
 楼主| 发表于 2015-12-2 22:02:41 | 显示全部楼层
回复【7楼】jermy_z:
<br>---------------------------------
<br>
<br>这是我rx模式的设置,我看别人也是这么写的
<br>void&nbsp;RX_Mode(void)
<br>        {
<br>        Clr_NRF24L01_CE;        &nbsp;&nbsp;
<br>//        NRF24L01_Write_Buf(NRF24L01_WRITE_REG&nbsp;+TX_ADDR,(u8*)RxAddr0,TX_ADR_WIDTH);//写TX节点地址&nbsp;
<br>        NRF24L01_Write_Buf(NRF24L01_WRITE_REG&nbsp;+RX_ADDR_P0,(u8*)RxAddr0,RX_ADR_WIDTH);&nbsp;&nbsp;//&nbsp;接收设备接收通道1使用和发送设备相同的发送地址
<br>&nbsp;&nbsp;        NRF24L01_Write_Buf(NRF24L01_WRITE_REG&nbsp;+RX_ADDR_P1,(u8*)RxAddr1,RX_ADR_WIDTH);&nbsp;//设置TX节点地址,主要为了使能ACK       
<br>       
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_AA,0x03);&nbsp;&nbsp;&nbsp;&nbsp;//使能通道0的自动应答&nbsp;&nbsp;&nbsp;&nbsp;
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+EN_RXADDR,0x03);//使能通道0的接收地址
<br>               
<br>               
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RX_PW_P1,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
<br>
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_CH,40);        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置RF通信频率
<br>&nbsp;        &nbsp;&nbsp;&nbsp;&nbsp;
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+RF_SETUP,0x0f);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启&nbsp;&nbsp;&nbsp;
<br>        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+CONFIG,&nbsp;0x0f);//配置基本工作模式的参数WR_UP,EN_CRC,16BIT_CRC,接收模式&nbsp;
<br>        Set_NRF24L01_CE;&nbsp;//CE为高,进入接收模式&nbsp;
<br>        }
<br>
<br>主函数的内容是这样的
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NRF24L01_Read_Buf(0x0a,RxAddr0,5);        &nbsp;//查地址
<br>                NRF24L01_Read_Buf(0x0b,RxAddr1,5);
<br>                NRF24L01_Read_Buf(0x07,careg,1);
<br>                careg[0]=(careg[0]&0x0e)&gt;&gt;1;        &nbsp;&nbsp;//提取位321
<br>                LCD_ShowNum(0,210,careg[0],3,16);
<br>                if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.
<br>                {
<br>                        if((careg[0]&0x0e)&gt;&gt;1==0)//接收通道0-----右手
<br>                                {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。
<br>                                }
<br>                                if((careg[0]&0x0e)&gt;&gt;1==1)//接收通道1-----左手
<br>                                {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。
<br>                                }&nbsp;
<br>
<br>                }
<br>                else&nbsp;;
<br>                LED0=!LED0;
<br>                                &nbsp;&nbsp;&nbsp;&nbsp;
<br>        };
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 12:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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