




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、(相關(guān)人員如覺得本人水平低下,還請(qǐng)見諒)Nrf24L01的使用程序和使用方法和簡單操作:功能:無線對(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è)地方的解釋:#define READ_REG 0x00 / 讀寄存器指令#define WRITE_REG 0x20 / 寫寄存器指令#define RD_RX_PLOAD 0x61 / 讀取接收數(shù)據(jù)指令#def
2、ine WR_TX_PLOAD 0xA0 / 寫待發(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 / 保留類似這種的描述,可以等同于READ_REG =0x00; 這個(gè)是經(jīng)過實(shí)際程序測(cè)試出來的,比如以下程序:#include<reg51.h>#define k 0xfevoid main()P1=k;則會(huì)出現(xiàn)此類結(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); 這兩句組合起來用,就實(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è)主要的問題,實(shí)際這個(gè)是涉及指針問題的,帶*的跟地址有關(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); / 寫本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫接收端地址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ù)長度,本次設(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)。如過狀態(tài)設(shè)置成
7、待機(jī),則引腳可能變?yōu)楦咦?。(以上并非全部引腳)SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 寫本地地址SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 寫接收端地址類似以上兩句,這是應(yīng)用spi的子程序,將寄存器指令放入nrf24l01。如果需深究,請(qǐng)參考說明書,手冊(cè)等?;蛘呖梢酝ㄟ^#define READ_REG 0x00 / 讀寄存器指令 等了解大概流程。在整個(gè)無線通信過程中,初始化只需設(shè)置一次。TxBuf存放的是發(fā)送的數(shù)據(jù)。并
8、且此數(shù)據(jù)被發(fā)送時(shí),是將這個(gè)數(shù)組的數(shù)全部發(fā)送的。對(duì)方也全部接收。RxBuf接收數(shù)組,用于存放對(duì)方發(fā)來的數(shù)據(jù)。SetRX_Mode();nRF24L01_RxPacket(RxBuf);當(dāng)主程序中包含這兩個(gè)子函數(shù)時(shí),且這時(shí)某個(gè)數(shù)據(jù)被發(fā)送過來,則會(huì)被接收到。且被存放到了RxBuf;反之包含nRF24L01_TxPacket(TxBuf);且TxBuf已經(jīng)存入你想要的數(shù)據(jù)的時(shí)候,這個(gè)數(shù)據(jù)將被發(fā)送。程序部分:下面給出程序,由于收發(fā)雙方程序是完全一樣的,所以只粘貼一份。程序雖然不是自己寫的,但是經(jīng)過實(shí)際測(cè)試的,沒有任何詭異的問題。如需要利用程序做nrf24l01改動(dòng)應(yīng)用在其他設(shè)計(jì)中。我把需要改動(dòng)的地方交代出來。主程序中保留部分: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)你寫入這個(gè)函數(shù),單片機(jī)執(zhí)行到這里,將會(huì)把Txbuf中的數(shù)發(fā)出去。最后是接收,當(dāng)執(zhí)行到此處,原先rx
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 歷史城市文化產(chǎn)業(yè)發(fā)展基地基礎(chǔ)知識(shí)點(diǎn)歸納
- 影像學(xué)考試試題及答案
- 英語臨聘筆試題目及答案
- 銀行高管筆試題目及答案
- 英語本科自考試題及答案
- 引進(jìn)人才面試題庫及答案
- 益陽成人高考題目及答案
- 2006申論試題及答案
- 醫(yī)院西藥房筆試題目及答案
- 醫(yī)學(xué)類筆試題目及答案
- 上海市楊浦區(qū)2023-2024學(xué)年高二下學(xué)期期末英語調(diào)研卷
- DL-T5169-2013水工混凝土鋼筋施工規(guī)范
- 美學(xué)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年山東工藝美術(shù)學(xué)院
- MOOC 政府審計(jì)學(xué)-南京審計(jì)大學(xué) 中國大學(xué)慕課答案
- 從偏差行為到卓越一生3.0版
- 原神游戲介紹PPT
- 2022年病區(qū)分層考核試題N2
- 交通勸導(dǎo)員上崗培訓(xùn)課件
- 水下作業(yè)安全培訓(xùn)
- TCACM 1524-2023 中醫(yī)體重管理臨床指南
- 校外培訓(xùn)機(jī)構(gòu)辦學(xué)申請(qǐng)書范文
評(píng)論
0/150
提交評(píng)論