搜索
bottom↓
回复: 6

有用过NRF24LE1自动应答的请进

[复制链接]

出0入0汤圆

发表于 2011-4-27 13:44:24 | 显示全部楼层 |阅读模式
最近在用NRF24LE1的带载荷应答,一直没有调通,有用过的朋友能分享分享!

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2011-4-27 14:03:31 | 显示全部楼层
这个真的不难,你贴出配置RF,还有写TX Payload的代码来看看吧。

出0入0汤圆

 楼主| 发表于 2011-4-28 10:59:33 | 显示全部楼层
/**************************************************
功能:RF初始化
**************************************************/
void rf_init(void) {
          RFCE = 0;                                                   // RF关闭
          RFCKEN = 1;                                                 // 启动RF时钟
          RF = 1;                                                     // 允许RF中断

        delay(1000);
   
    SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x01);                //设置地址长度0~1位[00:无效 01:3字节长度 10:4字节长度 11:5字节长度]
          SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);            // 设置发射地址
          SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);         // 设置接收地址长度

        SPI_RW_Reg(WRITE_REG + FEATURE, 0x06);                          //1位允许,使能动态载荷长度,使能带载荷ACK
        SPI_RW_Reg(WRITE_REG + DYNPD, 0x01);                          //使能数据通道0动态载荷长度
        SPI_Write_Buf(W_ACK_PAYLOAD, TX_ADD, 4);

          SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);                              // 启动自动应答功能        数据通道0
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);                          // PIPE0接收数据
          SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x10);                         // 自动重传10次
          SPI_RW_Reg(WRITE_REG + RF_CH, 0x40);                                // RF频率2440MHz
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                           // 发射功率0dBm, 传输速率2Mbps,
          SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);         // PIPE0 接收数据包长度                       
}

出0入0汤圆

 楼主| 发表于 2011-4-28 11:06:50 | 显示全部楼层
现在我不知道如何判断我确实把接收端的带载荷应答包发给发送端了,还望请教请教!

是我配置有问题还是其他地方应该注意些什么了,觉得是一头雾水呀!

出0入0汤圆

发表于 2011-4-28 12:03:33 | 显示全部楼层
NRF24LE1没用过,24L01用过,你可以参考下:抓STATUS寄存器的TX_DR位,是1说明发的包已经通过硬件ACK确认发完,然后把这位清0。注意:这个清0得用写1操做清零,怪着呢。

出0入0汤圆

发表于 2011-6-17 16:26:52 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-6-24 09:48:37 | 显示全部楼层
SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // PIPE0 接收数据包长度
把这个屏蔽掉都使用动态载荷了 使用这个没用
并且你仔细看关于动态载荷的FIFO数据填充介绍
你的问题就出现在那。。。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 23:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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