OpenEdv-开源电子网

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

nrf24L01通信的识别

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-3-21
在线时间
0 小时
发表于 2013-3-22 11:34:17 | 显示全部楼层 |阅读模式
<p>                                         
                                                                            关于nrf24L01的问题,请问原子哥我在发送端进行不同的操作(比如我要实现按1号按键实现一个功能,按2号按键实现另一个功能)怎么在接受端上识别?<br />
</p>
<p>该怎么写程序,谢谢。</p>
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-3-22 14:30:17 | 显示全部楼层
自己定个协议,就可以了。
<br>比如按1号键,发送字母a
<br>按2号键,发送字母b
<br>接收端根据收到的a,b来判断执行对应的操作。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-3-21
在线时间
0 小时
 楼主| 发表于 2013-3-24 15:57:07 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>原子哥你好,现在可以实现你所说的功能了,但是偶尔会出错。比如我按1键灯1亮灯2灭,2键灯2亮灯1灭;但是偶尔效果却会反过来1键灯2亮;也出现了1键按3次灯1才亮,2键也是按3次灯2亮,不多不少就三次。
<br>        while(!nRF24L01_RxPacket(Rx_Buf))&nbsp;//等待接收数据&nbsp;,返回1则接收到数据&nbsp;,在等待接收数据期间,可以随时变成发送模式&nbsp;&nbsp;
<br>        &nbsp;&nbsp;&nbsp;&nbsp;{
<br>                        if(KEY8==0)        &nbsp;//按了按键8&nbsp;&nbsp;&nbsp;则变成发送模式,发送对应数据,发送完后变成接收模式&nbsp;
<br>                        {       
<br>                                delay_ms(10);//消抖动&nbsp;
<br>                                if(KEY8==0)
<br>                                {&nbsp;&nbsp;&nbsp;
<br>                                &nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;Tx_Buf1[]={1};&nbsp;&nbsp;//发送的数据                        &nbsp;&nbsp;&nbsp;
<br>                        &nbsp;                while(!KEY8);
<br>                                        TX_Mode();        &nbsp;//发送模式&nbsp;
<br>                        &nbsp;&nbsp;&nbsp;&nbsp;        nRF24L01_TxPacket(Tx_Buf1);        //&nbsp;发送Tx_Buf1中的数据&nbsp;&nbsp;                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                                       
<br>                                        break;        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//退出最近的循环,从而变回接收模式,这句关键
<br>                                &nbsp;}
<br>                               
<br>                        &nbsp;}
<br>
<br>                        &nbsp;&nbsp;if(KEY7==0)        &nbsp;//按了按键7&nbsp;&nbsp;&nbsp;则变成发送模式,发送对应数据,发送完后变成接收模式&nbsp;
<br>                        {       
<br>                                delay_ms(10);//消抖动&nbsp;
<br>                                if(KEY7==0)
<br>                                {&nbsp;&nbsp;&nbsp;
<br>                                &nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;Tx_Buf1[]={2};
<br>                        &nbsp;                while(!KEY7);
<br>                                        TX_Mode();        &nbsp;//发送模式&nbsp;
<br>                        &nbsp;&nbsp;&nbsp;&nbsp;        nRF24L01_TxPacket(Tx_Buf1);        //&nbsp;发送命令数据                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                                &nbsp;&nbsp;
<br>                                        break;        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//退出最近的循环,从而变回接收模式,这句关键
<br>                                &nbsp;}
<br>                        &nbsp;}
<br>                       
<br>        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;        if(Rx_Buf[0]==1)        &nbsp;&nbsp;&nbsp;//若接收到对应的数据则实现对应功能&nbsp;
<br>        &nbsp;&nbsp;&nbsp;&nbsp;        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{        &nbsp;
<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;&nbsp;&nbsp;delay_ms(10);&nbsp;&nbsp;&nbsp;               
<br>                        &nbsp2=0xf0;                &nbsp;&nbsp;&nbsp;//灯1亮灯2灭
<br>                        &nbsp;}
<br>                &nbsp;&nbsp;&nbsp;
<br>                &nbsp;&nbsp;&nbsp;&nbsp;if(Rx_Buf[0]==2)
<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;&nbsp;&nbsp;&nbsp;delay_ms(10);
<br>                        &nbsp2=0x0f;
<br>                        &nbsp;delay_ms(300);
<br>                        P2=~P2;
<br>                        &nbsp;delay_ms(300);        &nbsp;&nbsp;
<br>                        &nbsp;
<br>                        &nbsp;}
<br>                                                &nbsp;&nbsp;                &nbsp;&nbsp;
<br>        &nbsp;&nbsp;&nbsp;}&nbsp;
<br>
<br>
<br>请问问题出在什么地方?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-3-24 17:02:00 | 显示全部楼层
回复【3楼】空心木:
<br>---------------------------------
<br>仿真跟踪看看。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2012-11-5
在线时间
11 小时
发表于 2013-4-9 15:35:27 | 显示全部楼层
LZ做好了吗?我现在正在做和你差不多的实验,能和你交流一下吗/
学习之路漫长而修远......
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 19:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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