OpenEdv-开源电子网

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

NRF24L01关闭ack应答后 发送端status 为46

[复制链接]

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-6-2
在线时间
3 小时
发表于 2012-7-17 00:37:06 | 显示全部楼层 |阅读模式
<p> 开启ack应答的时候发送端的状态值就是46并且成功进入中断,接收方也可以接收数据, 后将ack应答关闭,就算把接收端断电,发送端仍然是46.....接收端都关了怎么可能还有数据进来,应该是2e才对,求大神指教<br />
<br />
<br />
附上发送端代码:<br />
<br />
void TX_Mode(void)<br />
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;NRF24L01_CE=0;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp; &nbsp;NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); </p>
<p>&nbsp; &nbsp;NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x00);&nbsp;&nbsp;&nbsp;&nbsp; //disable ack<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x00); //disable 接收通道0<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Reg(WRITE_REG+SETUP_RETR,0x00);//disable 自动重发<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Reg(WRITE_REG+RF_CH,40);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x07);&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;NRF24L01_Write_Reg(WRITE_REG+CONFIG,0x0e);&nbsp;&nbsp;&nbsp; //发送模式<br />
&nbsp;NRF24L01_CE=1;//CE值高<br />
}<br />
<br />
发送端中断代码:<br />
<br />
sta=NRF24L01_Read_Reg(STATUS);<br />
&nbsp;&nbsp;&nbsp;printf("\nSTATUS is:\n");<br />
&nbsp;&nbsp;&nbsp;printf("%d%",sta);&nbsp;<br />
NRF24L01_Write_Reg(WRITE_REG+STATUS,sta);&nbsp; //clear STATUS<br />
EXTI-&gtR=1&lt;&lt;5; //clear line5<br />
</p>
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-7-17 01:18:58 | 显示全部楼层
你是不是没有读走之前的数据?
<br>复位一下,还是这个情况么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-6-2
在线时间
3 小时
 楼主| 发表于 2012-7-17 12:55:21 | 显示全部楼层
回复【2楼】正点原子:
<br>---------------------------------
<br>中断中加了例程里面读buffer的代码NRF24L01_RxPacket(tmp_buf)后读不出任何数据,在NRF24L01_RxPacket里面有清除RX&nbsp;FIFO&nbsp;寄存器NRF24L01_Write_Reg(FLUSH_RX,0xff);,太诡异了,使能ack后status就能为0x30(数据发送完成中断和达到最大重发次数中断),&nbsp;难道失能ack有什么特别需要注意的地方?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-7-17 18:35:27 | 显示全部楼层
回复【3楼】jia525:
<br>---------------------------------
<br>这个你找找其他参考例程看看吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2016-7-20
在线时间
33 小时
发表于 2016-8-28 15:13:03 | 显示全部楼层
多谢这位兄台帮我跳坑,知道怎么关ack了
回复 支持 反对

使用道具 举报

12

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2016-7-20
在线时间
33 小时
发表于 2016-8-28 15:13:16 | 显示全部楼层
多谢这位兄台帮我跳坑,知道怎么关ack了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 07:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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