找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1192|回复: 1
收起左侧

NRF2401的程序问题

[复制链接]
回帖奖励 20 黑币 回复本帖可获得 20 黑币奖励! 每人限 4 次(中奖概率 80%)
ID:478236 发表于 2019-4-20 09:13 | 显示全部楼层 |阅读模式
这个是收发一体的程序,完整的程序在附件里面附件
void main(void)
{

        uint while_times = 0;
        led6 =0;
        led5 =0; //        led0 = 0;
        lcd_delay(1000);
        init_NRF24L01();
        lcd_delay(100);
        
        while(1)
        {        
                //===== 发送模式 =====         
        //                if(KEY_0 == 0)//
        //                {
        //                        TxBuf[1] = 1;
        //                        TxBuf[2] = 1;
                  nrf_TxMod();          //对相关寄存器配置成发送模式
                  if(KEY_0 == 0)   { TxBuf[1] = 0;led2 = 0; }
                  if(KEY_1 == 0)   { TxBuf[1] = 1; led2 = 1;}
                 // else                        { TxBuf[1] = 1; }

                  if(KEY_2 == 0)    {TxBuf[2] = 0;led0=0;}
                  if(KEY_3 == 0)    {TxBuf[2] = 1;led0=1;}
                //else                     TxBuf[2] = 1;
                //把1存入TxBuf[1]中,然后发送出去;接收程序判断RxBuf[1]的值,等于1的话点亮LED
                //把1存入TxBuf[2]中,然后发送出去;接收程序判断RxBuf[2]的值,等于1的话点亮LED                                         
                                                        
                        nrf_trans(TxBuf);                //将待发送的数据写入NRF24L01
                        
                        while_times = 80;                //检测是否发送成功 循环检测?次  【可更改,让接收循环次数大于发送循环次数效果较好】
                        while(while_times--  )  //发送超时,或者发送成功,跳出循环 进入接收模式
                        {
                                get_nrf_sta();                //获取状态标志
                                if(TX_DS == 1)                //发送成功,跳出循环
                                        {break;}
                        }
        //                }



//                //===== 接收模式 =====
//                nrf_RxMod();           //对相关寄存器配置成接受模式
//                while_times = 160;                //检测是否接收成功 循环检测?次 【可更改,让接收循环次数大于发送循环次数效果较好】
//                while(while_times--)         //接收超时或者接收成功,跳出循环 进入发送模式
//                {
//                        get_nrf_sta();                        //获取状态标志
//                        if(RX_DR == 1)                        //接收成功
//                        {        
//                                nrf_read(RxBuf);        //接收成功后,将NRF24L01接收到的数据读到单片机的RxBuf数组中。
//                                led0=1;
//                                break;                                                //跳出循环
//                        }else led0=0;
//                }
//                if(KEY_0 == 0)                led7= 0;
//                if(KEY_1 == 0)                led7= 1;
//                if(RX_DR == 1)                //是因为接收到数据,而不是因为超时才跳出循环
//                {        
//                        
//                        if(RxBuf[1] == 0)        led2 = 1;        
//                                else                         led2 = 0;
//
//                        if(RxBuf[2] == 0)        led3 = 1;        
//                                else                         led3 = 0;
//                }


        }
}
感觉是接受那部分的,问题。引脚它还是标错的,后来换过新模块来调试了。有没有大神帮看一下。



NRF资料.rar

58.62 KB, 下载次数: 11

评分

参与人数 1黑币 +8 收起 理由
陈小晓 + 8

查看全部评分

回复

使用道具 举报

ID:478236 发表于 2019-4-25 14:56 | 显示全部楼层
后来解决了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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