<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > nRF2401無(wú)線(xiàn)通信模塊調試

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

作者: 時(shí)間:2012-08-18 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

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

2401.h下面的代碼//說(shuō)明: 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]={    //設配置字          //test8,8,                        //通道2與通道1數據寬度設置為8位0,0,0,0,57,                 //通道2接收地址0x00,0x00,0x00,0x00,0x99,  //通道1接收地址0x83,                      //通道1和通道2地址寬度為32位,開(kāi)CRC,16位,CRC 校驗0x6F, //4F  //雙頻道功能禁用,ShockBurst mode,傳輸速率1M,晶振頻率16M0x02                       //Channel = 2400MHz + RF_CH * 1.0MHz ,發(fā)送模式};                         //0:Tx 1:Rx                                          //===========================================================//===================發(fā)送單字節數據==============================void nRF2401_SendByte(unsigned char Data){unsigned char i;nRF2401_DATA1_DDR = 1;for(i=0;i8;i++){if((Data0x80)!=0)nRF2401_DATA1_PORT=1;else  nRF2401_DATA1_PORT=0;delay_us(1);  //最小500ns   nRF2401_CLK1_PORT=1;delay_us(1);//最小500nsData=1;nRF2401_CLK1_PORT=0;delay_us(1);} }//===========================================================//==================從nRF2401A數據緩沖區讀取數據==================void nRF2401_GetData(unsigned char *DataBuffer){unsigned char i=0,temp=0;nRF2401_DATA1_DDR =  0;//數據輸入while(nRF2401_DR1_PIN){for(i=0;i8;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ā)送/接收方式設置=================//Mode=0:發(fā)送方式   Mode=1:接收方式void nRF2401_SetMode(unsigned char Mode){ nRF2401_PWR_PORT=1;nRF2401_CE_PORT=0;nRF2401_CS_PORT=1;//設置模式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);}//===========================================================//====================數據發(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ā)送地址字節 nRF2401_SendByte(DataBuffer);            //發(fā)送數據字節nRF2401_CE_PORT=0;                       //發(fā)射數據delay_us(300);    //等待結束}//===========================================================//======================初始化===============================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;i15;i++)nRF2401_SendByte(nRF2401_InitData[i]);delay_us(10);nRF2401_CS_PORT=0;            //低功耗模式    delay_ms(6);}//===========================================================現將發(fā)送部分和接收部分的程序一并貼上發(fā)送部分://=======單片機:ATmega16,編譯器:CodeVision v1.24==========#includemega16.h>#includedelay.h>#include "2401.h" unsigned char a=0;main(){nRF2401_Init();nRF2401_SetMode(0);//發(fā)送模式while(1){ nRF2401_SendData(Address,a++);delay_ms(100);    }}接收部分://=======單片機:ATmega16,編譯器:CodeVision v1.24==========//==== 采用的是中斷接收方式=================================//Writen by ChenZhou#includemega16.h>#includedelay.h>#include "2401.h" unsigned char a=0;main(){MCUCR=0X03;GICR=0X40;#asm("sei");//啟用外部中斷INT0,上升沿中斷nRF2401_Init();nRF2401_SetMode(1);//接收模式while(1){ //=========在這里顯示變量a的數值即可,若為0到225則是正確的delay_ms(10);        }}interrupt [2] void int0(void){nRF2401_GetData(a);} 

通信相關(guān)文章:通信原理


晶振相關(guān)文章:晶振原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>