⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用lpc2131对nrf905进行配置通信.txt

📁 用于LPC2138对CC1000射频芯片内部寄存器编程及配置源码,非常有用的资料移植性强
💻 TXT
📖 第 1 页 / 共 2 页
字号:
                    UART0_SendByte(Buffer2[i]);
                  }

                  IO0SET |= nRF905_CSN;  
            }  

            //配置nRF905
            void Config905(void) 
            {
                nrf905_StandBy();
                IO1CLR |= nRF905_CSN;                             // Spi enable 
            for write a spi command
                delay(1);                   
                nrf905_SpiRW(WC);                                 // Write 
            config command
                nrf905_SpiRW(CH_NO_BYTE);                          //中心频率低8位
                nrf905_SpiRW(PA_PWR_10dBm | HFREQ_PLL_433MHz);     
            //发射+10dBm,发射频率433MHz,中心频率第9位=0
                nrf905_SpiRW(TX_AFW_4BYTE | RX_AFW_4BYTE);         
            //接收地址宽度4字节,发送地址宽度4字节
                nrf905_SpiRW(RX_PW_32BYTE);                        //接收数据宽度32字节
                nrf905_SpiRW(TX_PW_32BYTE);                        //发送数据宽度32字节
                nrf905_SpiRW(RX_ADDRESS_0);                        //接收有效地址第1字节
                nrf905_SpiRW(RX_ADDRESS_1);                        //接收有效地址第2字节
                nrf905_SpiRW(RX_ADDRESS_2);                        //接收有效地址第3字节
                nrf905_SpiRW(RX_ADDRESS_3);                        //接收有效地址第4字节
                nrf905_SpiRW(CRC16_EN | XOF_12MHz);                
            //CRC16模式使能,晶体振荡器频率12MHz
                
                delay(1);
                IO1SET |= nRF905_CSN;                           // Disable Spi
                
                nrf905_SpiTest();
                nrf905_RxOn();
                    
                IO1CLR |= LED7;
                delay(40);
                IO1SET |= LED7;
                delay(40);
                    //UART0_SendStr ("Config905 OK"); 
            }



            //读出接收到的数据
            void nrf905_ReadData(void)
            {
                uint8 i;
                IO1CLR |= nRF905_CSN;                    
                nrf905_SpiRW(RRP);  //读RxPayload 
                  for (i=0;i<BufferSize;i++)
                 { 
                    Buffer2[i]=nrf905_SpiRW(0);//read...
                  }
                  IO1SET |= nRF905_CSN;   

            }

            void nrf905_SendData(void)
            {        
                uint8 i;
                nrf905_TxOn();
                IO1CLR |= nRF905_CSN;               
                  nrf905_SpiRW(WTA);  //写Tx地址  
                 nrf905_SpiRW(TX_ADDRESS_0);
                 nrf905_SpiRW(TX_ADDRESS_1);
                  nrf905_SpiRW(TX_ADDRESS_2);
                  nrf905_SpiRW(TX_ADDRESS_3);      
                  IO1SET |= nRF905_CSN;
                  delay(1);
                  
                  IO1CLR |= nRF905_CSN;                  
                  nrf905_SpiRW(WTP);  //写TxPayload 
                  nrf905_SPISendStr(flagtext);
                  for (i=0;i<BufferSize;i++)
                  { 
                    nrf905_SpiRW(Buffer1[i]);
                  }  
                  IO1SET |= nRF905_CSN; 
            }

            void Receiver(void)
            {
                uint8 i;
                //if ((IO1PIN&nRF905_AM))==0) return;//一般先AM=1指示地址匹配对
               
                if ((IO1PIN&nRF905_DR)==0) return;//DR=1时表示数据接收对而且Crc正确
               
                   //已经接收到数据
                   nrf905_ReadData();//读出...
               
                   for (i=0;i<32;i++)
                   {
                       if (Buffer2[i]!=(i+i)) 
                    return;
                   }
               
                   //数据接收正确...灯指示
                   IO1CLR = LED6;
                   delay(50);
                   IO1SET = LED6;
               
                   //从机回送数据包,这样双方都能指示是否收到有效数据包
                   #ifndef MASTER
                     Transmitter();
                   #endif

            }

            void Transmitter(void)
            {
                uint8 i;
                   for (i=0;i<32;i++) 
                   Buffer2[i]=i+i;
                   nrf905_SendData();//发送数据
                   while((IO1PIN&nRF905_DR)== 0);
                   delay(1);
                   nrf905_RxOn();//重新回到接收状态
            }



            int main(void)
            {

                WDT_INIT();                   //看门狗初始化
                PINSEL2 = PINSEL2&(~0x08);     // P1[25:16]连接GPIO
                IO1DIR |= 0x397<<16;//p1.16 p1.17 p1.18 p1.20 p1.23 p1.24 
            p1.25为输出
                
                IO1CLR |= LED8;
                delay(50);
                IO1SET |= LED8;
                delay(50);
                IO1CLR |= LED7;
                delay(50);
                IO1SET |= LED7;
                delay(50);
                IO1CLR |= LED6;
                delay(50);
                IO1SET |= LED6;
                delay(50);
                
                IRQEnable();            //使能IRQ中断
                
                MSPI_Init();
                Config905();

                UART_Init ();            //系统初始化
                U0IER = 0x01;           //允许串口0接收中断
                
                while(1)
                {
                   
                       IO1CLR |= LED8;
                       delay(40);
                
                    WDT_CLEAR();                //看门狗清零
                    delay(5);
                    #ifdef MASTER
                    Transmitter();
                    #endif
                    
                    Receiver();
                    
                }
                   return 0;
            }









       电子连接器解决方案 
      关于论坛管理,收集意见和建议。 
      为下一阶段的社区活动,向广大财主化缘,募集奖品 
      热门讲座:采用Linux和MicroBlaze快速启动嵌入式系统开发 
      意法半导体STM32全国巡回研讨会 


      相关帖子

   请教nRF905配置程序是否正确(HotPower,汽车老大,圈圈帮忙) - ZX1221 2006-5-19 10:00:23 [ID:2094138 
  点击:2103] (10140 Bytes) (12) 
     谢谢 - ZX1221 2006-5-22 10:00:17 [ID:2096953 点击:439] (48 Bytes) (0) 
     ARM的地址配置不需要51那么烦琐~~~int就是32位 - hotpower 2006-5-22 9:56:14 [ID:2096946 
    点击:351] (20 Bytes) (0) 
     哈哈~~~这次见到真面目了~~~ - hotpower 2006-5-22 9:53:38 [ID:2096942 点击:360] (92 
    Bytes) (0) 
     哈哈~~~我那是用430做实验~~~后面不是有对的吗??? - hotpower 2006-5-22 9:51:15 [ID:2096937 
    点击:498] (4170 Bytes) (0) 
     郁闷 - ZX1221 2006-5-22 9:39:32 [ID:2096917 点击:339] (157 Bytes) (0) 
     继续倒塌 - hotpower 2006-5-22 9:32:52 [ID:2096902 点击:412] (8072 Bytes) (0) 
     倒塌了~~~我用了半天就移植到LPC2138上了 - hotpower 2006-5-22 9:32:10 [ID:2096899 点击:458] 
    (4568 Bytes) (0) 
     程序没问题啊 - ZX1221 2006-5-22 8:57:35 [ID:2096854 点击:445] (156 Bytes) (0) 
     抱歉,没用过905。这个配置应该比较容易吧, - computer00 2006-5-19 13:29:25 [ID:2094401 点击:305] 
    (16 Bytes) (0) 
     呵呵 - ZX1221 2006-5-19 12:47:51 [ID:2094366 点击:338] (80 Bytes) (0) 
     嘿嘿,我知道 - chinasunfa 2006-5-19 10:09:19 [ID:2094151 点击:339] (64 Bytes) (0) 
     头文件 - ZX1221 2006-5-19 10:03:25 [ID:2094146 点击:438] (650 Bytes) (0) 
最新100贴和BBS阅读方式目前只提供浏览功能;需要回复请 先进入本版版面



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -