CCALM 发表于 2013-5-22 12:02:07

有NRF24L01程序的时序图,帮帮忙分析下哪里出问题了!通信不了

本帖最后由 CCALM 于 2013-5-22 13:20 编辑

下面是发送和接收的时序图
1

2

3


下面是接收时序
1

2

3





真的看不出哪里出问题了,不知道是发送问题还是接收问题!

接收的程序STATUS读出来的值使0E,FIFOSTATUS的值使11,到底是什么情况??

下面贴出发送主函数:int main()
{
        char a,b;
       
        GPIO_INIT();           //GPIO初始化               
        SPI1_INIT();                //SPI初始化
        NRF24L01_INIT();        //NRF初始化
                       
        while(1)
        {
                GPIO_SetBits(GPIOC ,GPIO_Pin_8);                       ////LED
                SetTX_Mode();   //设置为发送模式
                NRF_TxPacket(TxBuf,32);//发送数据
                a=NRF_Read_Reg(STATUS);//读取STATUS寄存器值
                b=NRF_Read_Reg(FIFO_STATUS);//读取FIFO_STATUS寄存器
                if(a==0x2e)                       //a=0x2e&&b=0x11说明发送数据成功
                GPIO_WriteBit(GPIOC,GPIO_Pin_6,0);                //检查并发送数据,发送完LED亮
                else GPIO_WriteBit(GPIOC,GPIO_Pin_6,1);         
                if(!(GPIOC->IDR & GPIO_Pin_11))NRF_IRQ();                                  //清中断

                GPIO_WriteBit(GPIOC,GPIO_Pin_7,NRF24L01_Check());               //LED显示NRF存在
                d();
                GPIO_ResetBits(GPIOC,GPIO_Pin_8);
                d();       
        }       
}接收程序主函数:int main()
{
        int i;
        char a,b;
        GPIO_INIT();    //GPIO初始化
        USART_Config();//串口初始化
        SPI1_INIT();//SPI初始化
        NRF_INIT();        //NRF初始化

        GPIO_WriteBit(GPIOD,GPIO_Pin_6,0);

        while(1)
        {
               
                GPIO_SetBits(GPIOD,GPIO_Pin_5);
                SetRX_Mode();//接收模式
                               
                if(NRF_RxPacket(RxBuf,32))        接收数据
                {                               
                        GPIO_WriteBit(GPIOD,GPIO_Pin_6,1);        //接收导数据LED亮                       
                   for(i=0;i<32;i++)
                        USART1_Putc(RxBuf);//把接收到的数据发送到串口
                }               
                else
                {        a=NRF_Read_Reg(STATUS);//读取状态字
                        b=NRF_Read_Reg(FIFO_STATUS);
                        GPIO_WriteBit(GPIOD,GPIO_Pin_6,0);
                        USART1_Putc(a);
                        USART1_Putc(b);
                }               

                if(!(GPIOC->IDR & GPIO_Pin_11))NRF_IRQ();//清中断
               
                GPIO_WriteBit(GPIOD,GPIO_Pin_7,NRF_Check());               
                d();
                GPIO_ResetBits(GPIOD,GPIO_Pin_5);
                d();                                       
        }       
}!!!

CCALM 发表于 2013-5-22 13:10:39

等待大神...{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}

CCALM 发表于 2013-5-22 13:10:56

{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}

CCALM 发表于 2013-5-22 13:19:04

SOSOSOSOSOOSOSOSOSOSOS

CCALM 发表于 2013-5-22 13:19:28

要崩溃了
页: [1]
查看完整版本: 有NRF24L01程序的时序图,帮帮忙分析下哪里出问题了!通信不了