nrf24l01和蓝牙放在一个程序里2401就不能正常工作!!!

2020-01-21 21:39发布

本帖最后由 w灰太狼x 于 2013-5-10 13:23 编辑

nrf24l01和蓝牙放在一个程序里2401不能正常工作!!!把蓝牙初始化串口和蓝牙接收数据部分全屏蔽了2401就可以正常工作了.(我发的图片里的RI忘记清零了,实际程序里已经清零了)
#include<reg52.h>
#include <intrins.h>
#include"fs.h"
#include"ds18b20.h"
#include"小车.h"
#include"PWM.h"
bit flag;
uint templanya;
void delayus(uint i)
{
        while(i--);
}
void init_lanya()
{       
        TMOD=0x20;//设置定时器1为工作方式2 //GATE为0
        TH1=0xfd; //设置波特率为9600
        TL1=0xfd;
        TR1=1;          //GATE为0时TR1置1打开定时器1
        REN=1;          //允许串行口接收数据       
        SM0=0;          //设置串行口为工作方式1
        SM1=1;

}
void init_wx_wd()
{
        uchar i;
    display_DS18B20(); //获取温度值
        for(i=0;i<6;i++)
                TxBuf=DisBuf;//把温度用无线发送
        nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data                  
        SPI_RW_Reg(WRITE_REG+STATUS,0XFF);                
}

void main()
{
       
        init_lanya();                  //初始化蓝牙串口
        init_NRF24L01();          //NRF24L01初始化配置
        Delay(10);
                                
        while(1)
        {       
              init_wx_wd();          //2401接收温度并在液晶上显示
                //*****************蓝牙处理算法****************//
              if(RI==1)         //RI==1表示收到了数据
            {
                RI=0                             //收到数据后RI需要软件清零
                templanya=SBUF;                   //收到的数据存在SBUF中
                switch(SBUF)
                {                         
                        case 0xfe: qianjin();    //delayxms(20);stop();delayxms(5);
                                 if(bz1==0){zuozhuan();delayxms(1000);qianjin();}
                                 if(bz2==0){youzhuan();delayxms(1000);qianjin();}
                                 if(bz1==0&&bz2==0){houtui();delayxms(5000);zuozhuan();delayxms(500);qianjin();}
                                 break;                                                                                                                                                                                                                                          
                        case 0xfd: houtui();delayus(30000);stop();delayus(1);break;                                                  
                        case 0xfb: zuozhuan();delayus(30000);stop();delayus(1);
                                 if(bz1==0){youzhuan();delayxms(5000);qianjin();}
                                break;  
                        case 0xf7: youzhuan();delayus(30000);stop();delayus(1);
                             if(bz1==0){zuozhuan();delayxms(5000);qianjin();}break;
                        case 0xff: stop();break;
                }
                while(templanya==0x55)
                {
                        RI=0;templanya=SBUF; xunji();         
                }  
                }                           
        }         
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。