OpenEdv-开源电子网

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

nrf24l01,发送模式下status的值为0x3e,发送完成中断和发送超时中断同时触发,什么问题?

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-11-23
在线时间
3 小时
发表于 2015-11-27 10:20:10 | 显示全部楼层 |阅读模式
5金钱
nrf24l01 &nbsp; 设置为发送模式,读取状态寄存器status的值为0x3e。相当于0011 1110,表明发送完成中断和发送超时中断同时触发了,这是什么原因啊,程序在这里感觉就是跑死了。<br />
现在正在测试的方法是:一发多收,<span>一个主机0频道0通道发送信息,<span>两个或多个从机在同一个频道0同一个通道0上接收信息,均开启了自动应答,但是所有的从机却都能收到主机的信息!这是第一步。然后,</span></span>两个或多个从机在同一个频道0同一个通道0上,同时的给一个主机发送信息。相当于多发一收。这是第二步,也都开启了自动应答。整体测试,先第一步后第二步。<br />
这种情况是不是有可能会跑死啊,<span>请问跑死后添加什么代码会使之自动返回。不跑死就行</span>。<br />

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

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-11-23
在线时间
3 小时
 楼主| 发表于 2015-12-8 13:57:20 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>谢谢帮原子哥帮顶,目前知道的情况是:当主机在接受状态,接收到其中一个从机的信号后,本身的status中的RX_DR位置1&nbsp;,如果在主机切换到发送状态之前,又有从机从机发来信号,主机会将发来的数据存到寄存器中,并且本身的status中的RX_DR位重新置1。这时,如果切换到发送状态发送数据并且发送完成,status中寄存器TX_OK(忘了怎么写了,就是0x20)位置1.而此时,接收标志位在之前已经置1&nbsp;,读取status值时,会出现两个中断位为1,低4位为0的情况。这时,程序进行至if(sta&nbsp;&TX_OK),就会发现,虽然有两个标志位,且后四位代表power_up的位均为0,但是条件仍然成立,仍会返回正确的值。这种情况会对我们后面的传输过程有很大影响,我们测试发现,这种情况有可能使我们的程序跑死。目前的解决方法是:增加if语句的严谨性,将if(sta&nbsp;&TX_OK)扩充为:if((sta&nbsp;&TX_OK)&nbsp;&&((sta&nbsp;&RX_DR)==0)&&((sta&nbsp;&MAX_TX)==0)&&(sta&nbsp;&0x20)),简单来说就是只有一个中断标志位时,且power_up位正常为1时,程序才能进行下去。还没有想到更好的办法
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2015-11-23
在线时间
3 小时
 楼主| 发表于 2015-12-9 09:41:05 | 显示全部楼层
回复【3楼】坑儿:
<br>---------------------------------
<br>写错了,最后一个是:sta&nbsp;&&nbsp;0x02.并非0x20
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-7-2 17:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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