




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、(相關(guān)人員如覺(jué)得本人水平低下,還請(qǐng)見(jiàn)諒)Nrf24L01的使用程序和使用方法和簡(jiǎn)單操作:功能:無(wú)線對(duì)發(fā)程序。兩個(gè)模塊a,b,實(shí)現(xiàn)按下一個(gè)按鍵,會(huì)在對(duì)方的數(shù)碼管上顯示3或4,在本機(jī)上顯示1,2。當(dāng)一個(gè)模塊,比如a模塊。當(dāng)兩個(gè)按鍵按下其中一個(gè),則會(huì)在另一個(gè)模塊b上顯示數(shù)字3,4(具體根據(jù)按下哪個(gè)按鍵)。以上功能描述,B模塊按鍵按下,如同a模塊一樣的功能,不做系統(tǒng)性描述了。下面給出程序中幾個(gè)地方的解釋?zhuān)?define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫(xiě)寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#def
2、ine WR_TX_PLOAD 0xA0 / 寫(xiě)待發(fā)數(shù)據(jù)指令#define FLUSH_TX 0xE1 / 沖洗發(fā)送 FIFO指令#define FLUSH_RX 0xE2 / 沖洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定義重復(fù)裝載數(shù)據(jù)指令#define NOP 0xFF / 保留類(lèi)似這種的描述,可以等同于READ_REG =0x00; 這個(gè)是經(jīng)過(guò)實(shí)際程序測(cè)試出來(lái)的,比如以下程序:#include<reg51.h>#define k 0xfevoid main()P1=k;則會(huì)出現(xiàn)此類(lèi)結(jié)果:MOSI = (uchar & 0x80); /
3、output 'uchar', MSB to MOSIuchar = (uchar << 1); / shift next bit into MSB.SCK = 1; / Set SCK high.uchar |= MISO; / capture current MISO bitSCK = 0; 此處為spi的核心,是spi協(xié)議的編程,其中uchar |= MISO; 表示uchar |= MISO|uchar; MOSI = (uchar & 0x80);其中0x80是1000 0000,與上uchar,這種&,是按位與,故可以從uchar提取出一
4、個(gè)電平給mosi。 MOSI = (uchar & 0x80); / output 'uchar', MSB to MOSIuchar = (uchar << 1); 這兩句組合起來(lái)用,就實(shí)現(xiàn)了把uchar編程8位2進(jìn)制數(shù)后的每一位都可以發(fā)送給mosi;Uchar的只待對(duì)象,就是上面的諸如#define FLUSH_TX 0xE1 這樣的數(shù),或者是相關(guān)的發(fā)送數(shù)據(jù)。*pBuf這個(gè)并不是一個(gè)主要的問(wèn)題,實(shí)際這個(gè)是涉及指針問(wèn)題的,帶*的跟地址有關(guān)系,但是我們其實(shí)不需要很關(guān)心編譯的時(shí)候數(shù)據(jù)被具體存入哪個(gè)地址,即使是很重要的數(shù)據(jù)。void init_NRF24L01(
5、void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫(xiě)本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫(xiě)接收端地址SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 頻道0自動(dòng)ACK應(yīng)答允許SPI_RW_Reg(WRITE_REG + EN_RXADDR
6、, 0x01); / 允許接收地址只有頻道0,如果需要多頻道可以參考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 設(shè)置信道工作為2.4GHZ,收發(fā)必須一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為32字節(jié)SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB在整個(gè)初始化中我們看到:CE=0; / chip enable CSN=1; / Spi disable 這是設(shè)置整個(gè)的狀態(tài)。如過(guò)狀態(tài)設(shè)置成
7、待機(jī),則引腳可能變?yōu)楦咦琛#ㄒ陨喜⒎侨恳_)SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫(xiě)本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫(xiě)接收端地址類(lèi)似以上兩句,這是應(yīng)用spi的子程序,將寄存器指令放入nrf24l01。如果需深究,請(qǐng)參考說(shuō)明書(shū),手冊(cè)等。或者可以通過(guò)#define READ_REG 0x00 / 讀寄存器指令 等了解大概流程。在整個(gè)無(wú)線通信過(guò)程中,初始化只需設(shè)置一次。TxBuf存放的是發(fā)送的數(shù)據(jù)。并
8、且此數(shù)據(jù)被發(fā)送時(shí),是將這個(gè)數(shù)組的數(shù)全部發(fā)送的。對(duì)方也全部接收。RxBuf接收數(shù)組,用于存放對(duì)方發(fā)來(lái)的數(shù)據(jù)。SetRX_Mode();nRF24L01_RxPacket(RxBuf);當(dāng)主程序中包含這兩個(gè)子函數(shù)時(shí),且這時(shí)某個(gè)數(shù)據(jù)被發(fā)送過(guò)來(lái),則會(huì)被接收到。且被存放到了RxBuf;反之包含nRF24L01_TxPacket(TxBuf);且TxBuf已經(jīng)存入你想要的數(shù)據(jù)的時(shí)候,這個(gè)數(shù)據(jù)將被發(fā)送。程序部分:下面給出程序,由于收發(fā)雙方程序是完全一樣的,所以只粘貼一份。程序雖然不是自己寫(xiě)的,但是經(jīng)過(guò)實(shí)際測(cè)試的,沒(méi)有任何詭異的問(wèn)題。如需要利用程序做nrf24l01改動(dòng)應(yīng)用在其他設(shè)計(jì)中。我把需要改動(dòng)的地方交代出來(lái)。主程序中保留部分:unsigned char tf =0;unsigned char TxBuf20=0; / unsigned char RxBuf20=0;init_NRF24L01() ;nRF24L01_TxPacket(TxBuf);SetRX_Mode();nRF24L01_RxPacket(RxBuf);這三個(gè)部分需保留,其中最上面是初始化必須要,中間是發(fā)送,當(dāng)你寫(xiě)入這個(gè)函數(shù),單片機(jī)執(zhí)行到這里,將會(huì)把Txbuf中的數(shù)發(fā)出去。最后是接收,當(dāng)執(zhí)行到此處,原先rx
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 京派建筑設(shè)計(jì)特色與發(fā)展
- 迪安診斷宮頸癌精準(zhǔn)篩查解決方案
- 顧客轉(zhuǎn)介紹課件
- 順產(chǎn)產(chǎn)婦護(hù)理
- 音標(biāo)課件軟件工程筆記
- 水肌酸產(chǎn)品項(xiàng)目經(jīng)濟(jì)效益和社會(huì)效益分析報(bào)告(范文參考)
- 電網(wǎng)側(cè)獨(dú)立儲(chǔ)能示范項(xiàng)目建設(shè)管理方案(模板范文)
- 2025年玻璃纖維網(wǎng)墊項(xiàng)目建議書(shū)
- 2025年壓電陶瓷元件項(xiàng)目建議書(shū)
- 電網(wǎng)側(cè)獨(dú)立儲(chǔ)能示范項(xiàng)目初步設(shè)計(jì)
- 弘揚(yáng)教育家精神做新時(shí)代大學(xué)教師
- 2026年高考政治一輪復(fù)習(xí):高考政治命題備考策略
- 2024年湖南省辰溪縣檔案局公開(kāi)招聘試題帶答案
- 鋰離子電池安全性能優(yōu)化:針刺實(shí)驗(yàn)與失效機(jī)制分析
- 2025至2030年中國(guó)森林消防車(chē)行業(yè)市場(chǎng)全景評(píng)估及未來(lái)趨勢(shì)研判報(bào)告
- 2025生產(chǎn)與運(yùn)作管理試題及答案
- 暑假的一次冒險(xiǎn)經(jīng)歷記事作文4篇范文
- 入職預(yù)支薪資協(xié)議書(shū)
- 《中國(guó)特色社會(huì)主義理論體系的形成和發(fā)展》(課件)
- 職業(yè)技術(shù)學(xué)院嬰幼兒托育服務(wù)與管理專(zhuān)業(yè)人才培養(yǎng)方案
- 2025臺(tái)州市椒江區(qū)輔警考試試卷真題
評(píng)論
0/150
提交評(píng)論