2553|2

106

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

24L01丢数据严重,要有重发功能应该如何设置? [复制链接]

//代码来自本论坛shower.xu
void init_NRF24L01(void)
{

        Delay_us(100);        
        PORT &=~BIT(CE);
        PORT |= BIT(CSN);
        PORT &=~BIT(CLK);
          SPI_Write_Buf(WRITE_REG + TX_ADDR,  TX_ADDRESS1, TX_ADR_WIDTH);    // Writes TX_Address to nRF24L01
          SPI_Write_Buf(WRITE_REG + RX_ADDR_P0,  TX_ADDRESS1, TX_ADR_WIDTH); // RX_Addr0 same as TX_Adr for Auto.Ack
          //SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH1);              // Writes data to TX payload
          SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);                             // 禁止所有Pipe自动应答,调试TX时
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);                         // 禁止所有接受通道
          //SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00);                        // 禁止自动重发
          SPI_RW_Reg(WRITE_REG + RF_CH, 0);                               // Select RF channel 40
        SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);                           // TX_PWR:-12dBm, Datarate:1Mbps, LNA:HCURR
        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);                             // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled..
                
}

void main()

{
           unsigned char IncreaseData;
     WDTCTL = WDTPW + WDTHOLD;

     IO_initial();
     init_NRF24L01();
     GLED_off();

    while(1)
    {

     msg[0]=IncreaseData;
     nRF24L01_TxPacket(msg);            //要检测掉包自动重发功能,这里需不需要怎样修改啊?
     SPI_RW_Reg(WRITE_REG+STATUS,0xff);        // clear interrupt flag(TX_DS)
     Delay_us(10000);
     GLED_ray();
     Delay_us(10000);   
     IncreaseData++;
    }
例子是自本论坛shower.xu的例子。我下载后能收发数据,但是连续发送数据接收端收到的数据经常是不连续的。
问题:发现对方接收不到则重发功能应该如何设置?
          是在init_NRF24L01()里设置(24L01就自动重发?)还是在Main()里设置?

最新回复

这个是马甲   详情 回复 发表于 2014-3-19 10:40
 
点赞 关注

回复
举报

4

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
1、看注释,写明了自动应答和重发关闭了的,要打开。
2、在init_NRF24L01()里设置

点评

这个是马甲  详情 回复 发表于 2014-3-19 10:40
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

板凳
 
terrypsp 发表于 2014-3-19 10:30
1、看注释,写明了自动应答和重发关闭了的,要打开。
2、在init_NRF24L01()里设置

这个是马甲
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表