nrf24l01調(diào)試方法經(jīng)驗(yàn)總結(jié)_第1頁
nrf24l01調(diào)試方法經(jīng)驗(yàn)總結(jié)_第2頁
nrf24l01調(diào)試方法經(jīng)驗(yàn)總結(jié)_第3頁
nrf24l01調(diào)試方法經(jīng)驗(yàn)總結(jié)_第4頁
nrf24l01調(diào)試方法經(jīng)驗(yàn)總結(jié)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

NRF24L01:在通訊中的應(yīng)用方法,經(jīng)驗(yàn)總結(jié)(1)2011-07-3113:15第一說一下:是一款新式單片射頻收發(fā)器件,工作于GHz~GHzISM頻段。內(nèi)置頻次合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并交融了加強(qiáng)型ShockBurst技術(shù),此中輸出功率和通訊頻道可經(jīng)過程序進(jìn)行配置。nRF24L01功耗低,在以-6dBm的功率發(fā)射時,工作電流也只有9mA;接收時,工作電流只有mA,多種低功率工作模式(掉電模式和安閑模式)使節(jié)能設(shè)計(jì)更方便。是想將這個IC調(diào)通,第一要多讀一下技術(shù)文檔:下載技術(shù)文檔以下C51驅(qū)動的源代碼庫()此庫文件合適發(fā)送端使用,在接收端會有所不一樣,請看第2部分的剖析在使用過程中,需要引用SCK=1;uchar|=MISO;thensetSCKlowagain}return(uchar);.SPI_RW(reg);reg_val=SPI_RW(0);thenreadregistervalueCSN=1;andwritevaluetoit..CSN=1;//CSNhighagainreturn(status);//returnnRF24L01statusuchar}/****************************************************************************************************//*函數(shù):uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchars)/*功能:用于讀數(shù)據(jù),reg:為存放器地點(diǎn),pBuf:為待讀出數(shù)據(jù)地點(diǎn),uchars:讀出數(shù)據(jù)的個數(shù)/****************************************************************************************************/uintSPI_Read_Buf(ucharreg,uchar*pBuf,ucharuchars){uintstatus,uchar_ctr;CSN=0;//SetCSNlow,initSPItranactionstatus=SPI_RW(reg);//Selectregistertowritetoandreadstatusucharfor(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)pBuf[uchar_ctr]=SPI_RW(0);//CSN=1;return(status);//returnnRF24L01statusuchar}/*********************************************************************************************************/*函數(shù):uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars)/*功能:用于寫數(shù)據(jù):reg為存放器地點(diǎn),pBuf:為待寫入數(shù)據(jù)地點(diǎn),uchars:寫入數(shù)據(jù)的個數(shù)/*********************************************************************************************************/uintSPI_Write_Buf(ucharreg,uchar*pBuf,ucharuchars){uintstatus,uchar_ctr;CSN=0;//SPI使能status=SPI_RW(reg);for(uchar_ctr=0;uchar_ctr<uchars;uchar_ctr++)//SPI_RW(*pBuf++);CSN=1;//封閉SPIreturn(status);//}/****************************************************************************************************//*函數(shù):voidSetRX_Mode(void)/*功能:數(shù)據(jù)接收配置/****************************************************************************************************/voidSetRX_Mode(void){CE=0;SPI_RW_Reg(WRITE_REG+CONFIG,0x0f);//IRQ收發(fā)達(dá)成中止響應(yīng),16位CRC,主接收CE=1;inerDelay_us(130);}/******************************************************************************************************/

/*

函數(shù):

unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)

/*

功能:數(shù)據(jù)讀取后放如

rx_buf

接收緩沖區(qū)中/******************************************************************************************************/

ucharnRF24L01_RxPacket(unsignedchar*rx_buf)

{

unsignedcharrevale=0;

sta=SPI_Read(STATUS);

//讀取狀態(tài)存放其來判斷數(shù)據(jù)接收情況if(RX_DR)

//判斷能否接收到數(shù)據(jù)

{

Display8bit(3,0,sta);

//看一下接收機(jī)狀態(tài)

判斷一下,

IC

的工作狀態(tài),在正常使用過程中,這句需要去掉

CE=0;

//SPI

使能

SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//readreceivepayloadfromRX_FIFObuffer

revale=1;

//讀取數(shù)據(jù)達(dá)成標(biāo)記}SPI_RW_Reg(WRITE_REG+STATUS,sta);//接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,經(jīng)過寫revale;

1來清楚中止標(biāo)記return}/***********************************************************************************************************

/*

函數(shù):

voidnRF24L01_TxPacket(unsignedchar*tx_buf)

/*功能:發(fā)送

tx_buf

中數(shù)據(jù)/**********************************************************************************************************/

voidnRF24L01_TxPacket(unsignedchar*tx_buf)

{

CE=0;

//StandByI

模式

SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//

裝載接收端地點(diǎn)

SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);

//裝載數(shù)據(jù)

SPI_RW_Reg(WRITE_REG+CONFIG,0x0e);

//IRQ

收發(fā)達(dá)成中止響應(yīng),

16位

CRC,主發(fā)送

SPI_RW_Reg(WRITE_REG+STATUS,0X7E);

CE=1;

//置高CE,激發(fā)數(shù)據(jù)發(fā)送

inerDelay_us(100);

}NRF24L01:在通訊中的應(yīng)用方法,經(jīng)驗(yàn)總結(jié)(3)2011-07-3113:42再接著往下說調(diào)試過程:一般拿到IC后最大的困難就是沒法知道自己IC能否已經(jīng)工作了。假如調(diào)試不通,不知道是因?yàn)榘l(fā)送端的問題仍是接收端的問題。確實(shí),這個問題很現(xiàn)實(shí)。其實(shí)方法也很簡單,讀取IC內(nèi)部數(shù)據(jù),假如能讀出就說明,IC已經(jīng)工作,工作的怎么樣等信息,也能夠用讀取數(shù)據(jù)的方式來獲取下邊是發(fā)送部分的代碼:#include<>#include<>#include<>//引用了1602的庫,用來顯示數(shù)據(jù),來查察NRF24L01的工作狀態(tài)#include<>//引用需要調(diào)用的庫//************************************主函數(shù)************************************************************voidmain(void){uchartf;uchart;uchari,p;LCM_Init( );//初始化1602init_NRF24L01( );//初始化NRF24L01Delay(6000);t=0;while(1){for(i=0;i<10;i++){TxBuf[0]=0x30+i;//向發(fā)送緩存里放入一數(shù),我在這里放入的是i字符。至因此在i+0x30依據(jù)ASCII碼,加上0X30后8才會變?yōu)椤?”nRF24L01_TxPacket(TxBuf);//發(fā)送數(shù)據(jù)DisplayListChar(0,0,TxBuf);//將發(fā)送的數(shù)據(jù)顯示出來,因?yàn)樵陲@示的時候,要顯示一個可顯示字符“8”才能顯示0x08是不可以顯示的for(p=0;p<8;p++){Delay(6000);tf=SPI_Read(STATUS);//讀取狀態(tài)存放器,依據(jù)狀態(tài)存放器,我們就能夠知道IC能否正常工作,//假如不工作,這里獲取的tf=0xFFDisplay8bit(0,1,tf);//使用二進(jìn)制方法來顯示獲取的數(shù)據(jù)}}}}下邊是接收部分的代碼:#include<>#include<>#include<>#include<>//************************************主函數(shù)************************************************************voidmain(void){ucharRxBuf[1]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論