新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > nRF2401無線通信模塊調試 2

        nRF2401無線通信模塊調試 2

        作者: 時間:2016-11-29 來源:網(wǎng)絡 收藏
        最近有人過來問2401的調試問題,在這里把調試過程中應該注意的問題簡要說明如下:

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

        本文引用地址:http://www.104case.com/article/201611/323289.htm

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

        2401.h下面的代碼//說明: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]={    //設配置字                          //test8,8,                        //通道2與通道1數(shù)據(jù)寬度設置為8位0,0,0,0,57,                 //通道2接收地址0x00,0x00,0x00,0x00,0x99,  //通道1接收地址0x83,                      //通道1和通道2地址寬度為32位,開CRC,16位,CRC 校驗0x6F, //4F                 //雙頻道功能禁用,ShockBurst mode,傳輸速率1M,晶振頻率16M0x02                       //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);//最小500nsData<<=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ā)送/接收方式設置=================//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進入配置模式nRF2401_DATA1_PORT=Mode;                                    nRF2401_CLK1_PORT=1;delay_us(1);nRF2401_CLK1_PORT=0;delay_us(1);       //寫入最低配置位nRF2401_PWR_PORT=1;nRF2401_CS_PORT=0;nRF2401_CE_PORT=1;         //進入收發(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;  //進入收發(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);    //等待結束}				   
        				
                    
                        
        			
        							
        上一頁 1 2 下一頁

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 鲁甸县| 肇东市| 阿克| 霞浦县| 阜新| 泗水县| 琼中| 盘山县| 高州市| 洛南县| 海盐县| 南靖县| 彝良县| 八宿县| 深水埗区| 巨野县| 嘉鱼县| 新建县| 乡宁县| 正定县| 山丹县| 色达县| 枣庄市| 包头市| 黔西县| 上栗县| 四平市| 来宾市| 汾西县| 富民县| 霸州市| 隆回县| 和顺县| 卫辉市| 凤翔县| 额尔古纳市| 特克斯县| 新沂市| 庆元县| 宿州市| 肥城市|