OpenEdv-开源电子网

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

求助NRF24L01接收和发送模式相互切换时最短需要间隔多少毫秒?

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-9-23
在线时间
15 小时
发表于 2023-9-21 09:58:15 | 显示全部楼层 |阅读模式
上位机和单片机通信,单片机一直处于接收模式,50HZ上升沿同步信号,每个上升沿后5ms会切换一次发送模式,发送一组数据,再切回发送模式。这样单片机可以发出数据,但是单片机接受一次数据后就卡死了,哪位大侠指导一下小菜鸟吧!

NRF24L01_RX_Mode();//接收模式
delay_ms(2);       
EXTIX_Init();
TIM14_Int_Init(50,8399);                                                                                       
                while(NRF24L01_RxPacket(zifu)!=0)       
                {
                            while((shortflag==1)&&(NRF24L01_RxPacket(zifu)!=0))        
                                {
                                      tt0=Get_Adc_Average1(ADC_Channel_5,10);       
                                      II=Get_Adc_Average2(ADC_Channel_6,10);
                                }
                                     if(shortflag==0)
                                            {      
                                                    NRF24L01_TX_Mode();        //发送模式
                                                    delay_ms(2);
                                                      sendout[0] = 0x06;
                                                      sendout[1] = (max&0xff00)>>8;       
                                                      sendout[2] =  max&0x00ff;               
                                                     sendout[3] = (current&0xff00)>>8;
                                                        sendout[4] = current&0x00ff;       
                                                         sendout[5] = 0xCC;       
                                                        sendout[6] = 0xCC;        //电流保护
                                                        NRF24L01_TxPacket(sendout);

                                                       shortflag=1;
                                                       NRF24L01_RX_Mode();//接收模式
                                                    delay_ms(2);

                                              }
                                         if(NRF24L01_RxPacket(zifu)==0)
                                          {
                                                 NRF24L01_TX_Mode();        //发送模式
                                                   delay_ms(2);         
                                                   sendout[0] = 0x06;
                                                sendout[1] = 0xF2;       
                                                sendout[2] = 0xF2;               
                                                sendout[3] = 0xF2;
                                                sendout[4] = 0xF2;       
                                                sendout[5] = 0xF2;       
                                                sendout[6]=0xF2;                                                                                                          
                                                 NRF24L01_TxPacket(sendout);
                                                NRF24L01_RX_Mode();//接收模式
                                                delay_ms(2);
                                          }

                          }


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2020-9-23
在线时间
15 小时
 楼主| 发表于 2023-9-21 10:12:54 | 显示全部楼层
怎么实现随意发送、接收数据?
回复 支持 反对

使用道具 举报

10

主题

3073

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7749
金钱
7749
注册时间
2020-5-11
在线时间
3220 小时
发表于 2023-9-22 10:44:33 | 显示全部楼层
看它死在哪了?
比如在某些位置放一句代码向串口发一字节数据,就知道它死在哪了.
专治疑难杂症
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-5-16 05:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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