OpenEdv-开源电子网

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

NRF24L01收数据有问题求助

[复制链接]

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
发表于 2016-4-8 22:08:41 | 显示全部楼层 |阅读模式
6金钱
我现在在用NRF24L01,遇到了个问题,想请教下,我按照网上的方法,可以发射,可以接收(关闭自动应答的情况下),我是500us发射一次0x00,然后500us发射一次0xff,接收端收到ff就置高电平,收到00就置位低电平,但是我在接收端,并不是规律的收到这种信号,高低电平一会高电平2ms一次,一会高电平4ms一次这样,低电平也是,不知道问题在哪,请您帮忙指点下吧,从何处开始排除故障吧,谢谢。
以下是我写的接收函数,如果把delay的时间稍微一改,电平就成了20ms左右变甚至一直低电平,如果不加延时函数并把RX_MODE移到上面,也是一直低电平啥也没有,请大家帮帮忙,看看应该从何处排除故障。
另外我发送是通的,通过写数据然后读状态寄存器是0x12判别的。
while(1)
{   
         RX_Mode();                              // 设置为接收模式
         delay_800us();
         //while(IRQ);
         if(flag)
        {
             flag=0;
             sta = SPI_Read(STATUS);          // 读状态寄存器
        if (sta & 0x40);// 判断是否接受到数据
       {
                  SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH);  // 从RX FIFO读出数据
                  flag1 = 1;
                   SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除RX_DS中断标志
            SPI_RW(FLUSH_RX);
            sta=0;
        }   
       if(flag1)                           // 接受完成
               {
            flag1 = 0;                       // 清标志
            a = RX_BUF[0];
            if(a==0xff)
              LATBbits.LATB0=1;
            else if(a==0x00)
              LATBbits.LATB0=0;
        }
   }











最佳答案

查看完整内容[请看2#楼]

RXMODE不需要多次执行 另外主机500us发送一次 主函数循环里800us查询一次 对不上 flag 哪来的?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2015-6-7
在线时间
38 小时
发表于 2016-4-8 22:08:42 | 显示全部楼层
本帖最后由 fghlw 于 2016-4-12 08:22 编辑

RXMODE不需要多次执行
另外主机500us发送一次   主函数循环里800us查询一次   对不上 flag  哪来的?


回复

使用道具 举报

11

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2015-6-7
在线时间
38 小时
发表于 2016-4-9 09:26:48 | 显示全部楼层
启用CRC了没?
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
 楼主| 发表于 2016-4-9 10:30:15 | 显示全部楼层

启用了呀,在RX_MODE里面,发射端当然也启用了
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
 楼主| 发表于 2016-4-9 10:47:33 | 显示全部楼层
zhugeliang9575 发表于 2016-4-9 10:30
启用了呀,在RX_MODE里面,发射端当然也启用了

void RX_Mode(void)
{
        CE = 0;
          SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  
          SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);               
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);                  
        SPI_RW_Reg(WRITE_REG + RF_CH, 73);                 
          SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);           
          SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              
          CE = 1;                                          
}
这是接收
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
 楼主| 发表于 2016-4-9 10:50:00 | 显示全部楼层

void TX_Mode(uchar * BUF)
{
        CE = 0;
          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_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH);                 
          SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);      
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00);   
          SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00);  
          SPI_RW_Reg(WRITE_REG + RF_CH, 73);        
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   
          SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);     
        CE = 1;
}
这是发送
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
 楼主| 发表于 2016-4-9 17:30:44 | 显示全部楼层
求助求助
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2016-4-9 20:25:17 | 显示全部楼层
帮顶
回复

使用道具 举报

4

主题

19

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-4-8
在线时间
7 小时
 楼主| 发表于 2016-4-9 21:01:56 | 显示全部楼层

原子哥给点建议吧,我应该从哪开始排除故障呢
回复

使用道具 举报

5

主题

110

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2013-9-16
在线时间
0 小时
发表于 2016-5-6 12:47:55 | 显示全部楼层

NRF24L01无线数传软件解析http://v.youku.com/v_show/id_XMTU0NzM3ODIxNg==.html
RFinchina 团队欢迎无线方面的技术交流 QQ 474882985
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-9-28 23:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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