久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

nRF2401無(wú)線(xiàn)通信模塊調(diào)試

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年07月11日   【字體:

最近有人過(guò)來(lái)問(wèn)2401的調(diào)試問(wèn)題,在這里把調(diào)試過(guò)程中應(yīng)該注意的問(wèn)題簡(jiǎn)要說(shuō)明如下:

1.nRF2401是3.3V供電的,電壓過(guò)低或過(guò)高都會(huì)對(duì)通信造成影響,要么不能完全通信要么斷斷續(xù)續(xù)地通信,至于怎么穩(wěn)壓到3.3V,可以采用穩(wěn)壓二級(jí)管,可以使用LM317,這幾種方法都試用過(guò),都可行。
2.一般的微處理器的I/O口電壓為5V,而2401的I/O口電壓為3.3V,若直接相連,容易燒壞2401,可以采用串連2K電阻的方法,也可以使用3.3V和5V電平轉(zhuǎn)換芯片如74LVX3245。

3.至于程序部分,一兩句話(huà)也說(shuō)不清楚,請(qǐng)仔細(xì)閱讀nRF2401的使用說(shuō)明書(shū)。下面公布一段2401程序僅供參考,此程序多次修改,久經(jīng)考驗(yàn),應(yīng)該沒(méi)有問(wèn)題。

2401.h下面的代碼

//說(shuō)明:nRF2401 CE腳控制收發(fā)使能,CS控制片選,均為高電平有效
//===============引腳定義=======================
#define nRF2401_CE_PORT       PORTD.1//
#define nRF2401_CE_DDR        DDRD.1//

#define nRF2401_PWR_PORT    PORTD.0//
#define nRF2401_PWR_DDR     DDRD.0//

#define nRF2401_CS_PORT       PORTD.3//
#define nRF2401_CS_DDR      DDRD.3//  

#define nRF2401_CLK1_PORT   PORTD.5//
#define nRF2401_CLK1_DDR  DDRD.5// 

#define nRF2401_DATA1_PORT   PORTD.4
#define nRF2401_DATA1_DDR  DDRD.4 
#define nRF2401_DATA1_PIN  PIND.4

#define nRF2401_DR1_PORT     PORTD.2//
#define nRF2401_DR1_DDR    DDRD.2//
#define nRF2401_DR1_PIN    PIND.2//

unsigned char Address[4]={0x00,0x00,0x00,0x99};                                   

//===================配置字定義================================
unsigned char nRF2401_InitData[15]={    //設(shè)配置字                          //test
8,8,                        //通道2與通道1數(shù)據(jù)寬度設(shè)置為8位
0,0,0,0,57,                 //通道2接收地址
0x00,0x00,0x00,0x00,0x99,  //通道1接收地址
0x83,                      //通道1和通道2地址寬度為32位,開(kāi)CRC,16位,CRC 校驗(yàn)
0x6F, //4F                 //雙頻道功能禁用,ShockBurst mode,傳輸速率1M,晶振頻率16M
0x02                       //Channel = 2400MHz + RF_CH * 1.0MHz ,發(fā)送模式
};                         //0:Tx 1:Rx                                                                   
//===========================================================

//===================發(fā)送單字節(jié)數(shù)據(jù)==============================
void nRF2401_SendByte(unsigned char Data)
 {
  unsigned char i;
  nRF2401_DATA1_DDR = 1;
  for(i=0;i<8;i++)
  {
     if((Data&0x80)!=0)
     nRF2401_DATA1_PORT=1;
     else  nRF2401_DATA1_PORT=0;
     delay_us(1);  //最小500ns   
     nRF2401_CLK1_PORT=1;
     delay_us(1);//最小500ns
     Data<<=1;
     nRF2401_CLK1_PORT=0;
     delay_us(1);
   } 
 }
//===========================================================
//==================從nRF2401A數(shù)據(jù)緩沖區(qū)讀取數(shù)據(jù)==================
void nRF2401_GetData(unsigned char *DataBuffer)
 {
   unsigned char i=0,temp=0;
   nRF2401_DATA1_DDR =  0;//數(shù)據(jù)輸入
   while(nRF2401_DR1_PIN)
   {
    for(i=0;i<8;i++)
    {
      temp<<=1;  
      nRF2401_CLK1_PORT=1;delay_us(1);
      temp|=nRF2401_DATA1_PIN;
      nRF2401_CLK1_PORT=0;delay_us(1); 
    }
   }
   *DataBuffer=temp;
 }                                  

//=====================nRF2401A發(fā)送/接收方式設(shè)置=================
//Mode=0:發(fā)送方式   Mode=1:接收方式
void nRF2401_SetMode(unsigned char Mode)
 { 
     nRF2401_PWR_PORT=1;nRF2401_CE_PORT=0;nRF2401_CS_PORT=1;//設(shè)置模式
     nRF2401_DATA1_DDR = 1;
     delay_us(10);  //最小5us進(jìn)入配置模式
     nRF2401_DATA1_PORT=Mode;                                    
     nRF2401_CLK1_PORT=1;delay_us(1);
     nRF2401_CLK1_PORT=0;delay_us(1);       //寫(xiě)入最低配置位
     nRF2401_PWR_PORT=1;nRF2401_CS_PORT=0;nRF2401_CE_PORT=1;         //進(jìn)入收發(fā)模式、
     delay_us(300);
 }
//===========================================================

//====================數(shù)據(jù)發(fā)送=================================
void nRF2401_SendData(unsigned char *Address,unsigned char DataBuffer)
 {
   unsigned char i=4; 
   nRF2401_PWR_PORT=1;nRF2401_CS_PORT=0;nRF2401_CE_PORT=1;  //進(jìn)入收發(fā)模式    
   delay_us(10);
   while(i--)nRF2401_SendByte(*Address++);                //發(fā)送地址字節(jié) 
   nRF2401_SendByte(DataBuffer);            //發(fā)送數(shù)據(jù)字節(jié)
   nRF2401_CE_PORT=0;                                                                          //發(fā)射數(shù)據(jù)
   delay_us(300);    //等待結(jié)束
 }
//===========================================================

//======================初始化===============================
void nRF2401_Init()
 {                       
     unsigned char i;
     nRF2401_CLK1_DDR=1;
     nRF2401_DATA1_DDR=1;
     nRF2401_CS_DDR = 1;
     nRF2401_CE_DDR = 1;
     nRF2401_PWR_DDR = 1;
     nRF2401_DR1_DDR = 0;
    
     nRF2401_DR1_PORT=0;
     nRF2401_CLK1_PORT=0;
     nRF2401_DATA1_PORT=0;
    
     nRF2401_CE_PORT=0;
     nRF2401_CS_PORT=0;//空閑模式,低功耗
     nRF2401_PWR_PORT=1;//上電
     delay_ms(5);//從上電到進(jìn)入配置模式最大 3ms 的延時(shí)
     nRF2401_CS_PORT=1;//進(jìn)入配置模式
     delay_us(10); //最小5us              
     for(i=0;i<15;i++)nRF2401_SendByte(nRF2401_InitData[i]);
     delay_us(10);
     nRF2401_CS_PORT=0;            //低功耗模式    
     delay_ms(6);
 }
//===========================================================

 

現(xiàn)將發(fā)送部分和接收部分的程序一并貼上

發(fā)送部分:

//=======單片機(jī):ATmega16,編譯器:CodeVision v1.24==========

#include<mega16.h>
#include<delay.h>
#include "2401.h" 
unsigned char a=0;
main()
{
  nRF2401_Init();
  nRF2401_SetMode(0);//發(fā)送模式
while(1)
{ 
  nRF2401_SendData(Address,a++);
  delay_ms(100);    
}
}

接收部分:

//=======單片機(jī):ATmega16,編譯器:CodeVision v1.24==========

//==== 采用的是中斷接收方式=================================

//Writen by ChenZhou
#include<mega16.h>
#include<delay.h>
#include "2401.h" 
unsigned char a=0;
main()
{
  MCUCR=0X03;GICR=0X40;#asm("sei");//啟用外部中斷INT0,上升沿中斷
  nRF2401_Init();
  nRF2401_SetMode(1);//接收模式
while(1)
{ 
//=========在這里顯示變量a的數(shù)值即可,若為0到225則是正確的
  delay_ms(10);        
}
}

interrupt [2] void int0(void)
{
nRF2401_GetData(&a);
} 
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产精品成人久久久久 | 欧美精品久久 | 四虎影院免费在线播放 | 91免费在线看 | 羞羞的视频免费观看 | 国产精品久久国产精品 | 欧美成人精品在线观看 | 欧美群妇大交群中文字幕 | 黄网站色大毛片 | 久久99精品久久久久久 | 欧美日韩在线观看视频 | 精品欧美乱码久久久久久1区2区 | 日本一区二区三区免费观看 | 最新av中文字幕 | 韩日精品一区 | 在线观看国产h | 欧美中文在线 | 亚洲一区亚洲二区 | 久久久久国产一区二区三区四区 | 国产高清精品一区二区三区 | 精品视频亚洲 | 99精品久久久 | 最新av在线播放 | 国产一在线观看 | av网站免费 | 啪啪毛片| 国产 91 视频 | 国产精品欧美日韩 | 精品国产一区二区在线 | 在线观看欧美一区 | 婷婷五月色综合香五月 | 国产精品一区在线 | 亚洲性视频 | 成人免费看黄网站在线观看 | 天天干天天干 | 日日操视频| 国产ts人妖系列高潮 | 国产免费视频 | 国产精品亚洲一区二区三区在线 | 中文字幕日韩欧美一区二区三区 | 国产精品视频一区二区三区不卡 |