天线|RF射频
直播中

刘嵘

7年用户 216经验值
私信 关注
[问答]

24l01数据双向收发显示一部分后就死循环怎么解决?

STM32+ 24L01

发送数据到另一个STM32,当收到另一个传来的数据后再发下一组数据。



1.

u8 temp[2],a[10];

。。。。

。。。

。。。

。。。

        TX_Mode();        //发模式

                  temp[1]= gImage[i*2+1] ;     // gImage[]   为要发送的数据组

                   temp[0]=gImage[i*2];           // gImage[]   为要发送的数据组

                           printf("%x ",temp[0]);

                        printf("%x ",temp[1]);

                        NRF24L01_TxPacket(temp);  

                        while(NRF24L01_TxPacket(temp)!=TX_OK)printf("TT ");   //等待发送完成,等待期间通过串口传数据到PC上看

                        RX_Mode();   //读模式

while(NRF24L01_RxPacket(a)!=0)printf("%s ",a);   
//等待接收完成,等待期间通过串口传数据到PC上看





2.

u8 temp[2],t[]={"nimei"};

。。。。

。。。。。

。。。

。。

                          RX_Mode();   //读模式

                while(NRF24L01_RxPacket(temp)!=0)printf("RR ");                                                                                                                                                

                  printf("%x ",temp[0]);

                        printf("%x ",temp[1]);

                LCD_WR_DATA8(temp[1],temp[0]);   // 接收到gImage[]   发给液晶

                TX_Mode();           //发模式        

NRF24L01_TxPacket(t);  

while(NRF24L01_TxPacket(temp)!=TX_OK)printf("%s ",t);









偶尔成功偶尔失败的。。。。

无言了。。。。。

下面是在串口大师里看到的。。。。

1

0 10 TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT TT      64 0 nimei nimei 3e 0 nimei nimei 1 1b nimei nimei 82 18 nimei nimei 81 18 nimei nimei 82 18 nimei nimei 82 18 nimei nimei 82 18 nimei nimei 82 18 nimei nimei 82 18 nimei nimei a2 20 nimei nimei 82 18 nimei nimei 81 18 nimei nimei 82 18 nimei nimei a2 20 nimei nimei a2 28 nimei nimei e3 28 nimei nimei e3 38 nimei nimei 23 41 nimei nimei 64 51 nimei nimei c5 61 nimei nimei 1c d7 nimei nimei bc be nimei nimei bc be nimei nimei 3d d7 nimei nimei 3e d7 nimei nimei bd b6 nimei nimei 9d ae nimei nimei 9e ae nimei nimei 3d ae nimei nimei 7b 95 nimei nimei 7c 9d nimei nimei 7d 9d nimei nimei fb 8c nimei nimei 79 7c nimei nimei 39 7c nimei nimei 39 7c nimei nimei 19 7c nimei nimei 19 7c nimei nimei 59 84 nimei nimei 79 8c nimei nimei 78 8c nimei nimei 18 7c nimei nimei b7 6b nimei nimei 36 5b nimei nimei 36 5b nimei nimei 36 5b nimei nimei 37 5b nimei nimei 57 63 nimei nimei 57 63 nimei nimei 36 5b nimei nimei 36 5b nimei nimei 15 5b nimei nimei 16 5b nimei nimei 15 5b nimei nimei f5 5a nimei nimei d5 52 nimei nimei f5 5a nimei nimei 16 5b nimei nimei 16 5b nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei

2

RR 0 10 RR RR RR 64 0 RR RR RR 3e 0 RR RR RR 1 1b RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR 82 18 RR RR RR RR a2 20 RR RR RR RR 82 18 RR RR RR RR 81 18 RR RR RR RR RR RR 82 18 RR RR RR RR a2 20 nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei nimei



分两次取的数据。。。。有一点不一样。。。。大概问题就是显示一部分后就死循环了。。。。。跳不出来



我也是新手,接触stm32 不到一个月。还请大家多多帮忙。我不知道这样去接收与发送会不会很***。但是 驱动程序~~我好多都无法理解,所以。。。








回帖(6)

甘孟杰

2020-4-27 08:54:51
2

RR 0 10 RR RR RR 64 0 RR RR RR RR 3e 0 RR RR RR RR 1 1b RR RR RR RR 82 18 RR RR RR RR 81 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR 82 18 RR RR RR RR a2 20 RR RR RR RR 82 18 RR RR RR RR 81 18 RR RR RR RR 82 18 RR RR RR RR a2 20 RR RR RR RR a2 28 RR RR RR RR e3 28 



发完就卡死了???????后面的没有了????????怎么回事??????????死在哪里了??????
举报

潘璐

2020-4-27 09:10:16
模式切换的时候,加入一点延时吧,你这样如果一方切换慢了一点,那不就是冲突了?
举报

屈鑫燕

2020-4-27 09:17:41

我在NRF24L01_TxPacket的一个循环里加入了串口输出

u8 NRF24L01_TxPacket(u8 *txbuf)

        {

        u8 sta;

        SPIx_SetSpeed(SPI_BaudRatePrescaler_8);//spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)   

        Clr_NRF24L01_CE;

        NRF24L01_Write_Buf(NRF24L01_WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//写数据到TX BUF  32个字节

        Set_NRF24L01_CE;//启动发送           

        【while(NRF24L01_IRQ!=0)printf("IRQ ");;//等待发送完成!!!!!!!!!!!!!!!!!!!】

        sta=NRF24L01_Read_Reg(STATUS);  //读取状态寄存器的值           

        NRF24L01_Write_Reg(NRF24L01_WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志

        if(sta&MAX_TX)//达到最大重发次数

                {

                NRF24L01_Write_Reg(NRF24L01_FLUSH_TX,0xff);//清除TX FIFO寄存器 

                return MAX_TX; 

                }

        if(sta&TX_OK)//发送完成

                {

                return TX_OK;

                }

        return 0xff;//其他原因发送失败

        }









然后看串口发现

RR 0 10 IRQ RR 64 0 IRQ RR 3e 0 IRQ RR RR RR 1 1b IRQ RR RR RR 82 18 IRQ RR RR 81 18 IRQ RR RR RR 82 18 IRQ RR RR RR 82 18 IRQ RR RR 82 18 IRQ RR RR RR 82 18 IRQ RR RR RR 82 18 IRQ RR RR a2 20 IRQ RR RR RR 82 18 IRQ RR RR RR 81 18 IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ IRQ
举报

宁升椿

2020-4-27 09:26:11

草。。。。解决了。。。。好像是线有问题。。。我把线碰了一下。。。。然后。。。

TMD的正常了!!!!!!!!!!!!!



这是什么情况????我用手接触线就可以传输。。。我一松就断开了。。。。

真的~~~我把线一碰就开始传输。。。一松就没了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分