微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > nRF905点对多通信问题,求指导

nRF905点对多通信问题,求指导

时间:10-02 整理:3721RD 点击:
要用51单片机nRF905做一个1对6无线测温系统,我想用轮询的方式实现。
主机向从机发送数据请求,从在收到请求后发送数据,主机在规定时间内不管收没有收到从机数据都跳到下一个从机。
现在的问题是从机能收到主机的数据请求指令,但不能返回数据给主机。
这是我的主机无线通信程序,TxPacket(x)是给从机x发送时数据请求。
void Communicate()
{        
     uchar x;
    for(x=1;x<7;x++)
        {
            uint i=1000;
            SetTxMode();                       
                    TxPacket(x);                       
            SetRxMode();
            while(!i)
            {
                   if (DR)       
                   RxPacket();       
                   else                     
                    {
                          i--;               
                   }            
             }
      }
}
这个程序调试时主机老是收不到从机发回的数据,设过很多不同的i值都不行。
麻烦大家看看这程序该怎么改。或是有其它的通信方法麻烦告知一下,谢谢!

      您好!我现在也遇到了和你当时一样的问题,就是主机可以发送出去,但是却收不到从机的返回数据,可以确定从机确实是发出来了。你当时是怎么解决的呢?麻烦了

void main()
{
    init905();
        Config905();                                // Config nRF905 module
while(1)
{
           SetTxMode();                                // Set Tx Mode
                     TxPacket();                        // Transmit Tx buffer data       
               SetRxMode();
         //=====================等待NRF905接收
           if (DR)                        // If recive data ready...
           RxPacket();                        // ... recive data
            if(RxBuf[0]==0x01)
                 {
                         RxBuf[0] =0;
                         LED1 = 0 ;
                Delay(1000);                                        // ...light led
             LED1 = 1 ;
                      Delay(500);                                        // ...light led       
            
             }
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top