標(biāo)題: nrf24l01無線通信的實(shí)現(xiàn) [打印本頁]
作者: liu657657 時間: 2017-4-7 20:37
標(biāo)題: nrf24l01無線通信的實(shí)現(xiàn)
nrf24l01無線通信實(shí)現(xiàn),基于51單片機(jī),實(shí)現(xiàn)矩陣鍵盤與數(shù)碼管的顯示,矩陣鍵盤按下幾對應(yīng)的接收端收到數(shù)據(jù)后相應(yīng)的在數(shù)碼管上顯示按鍵號,從而實(shí)現(xiàn)無線通信。通信過程中,大致原理如下:
1、發(fā)送方
首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點(diǎn)地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù);若自動應(yīng)答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(自動應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應(yīng)答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若重發(fā)次數(shù)(ARC)達(dá)到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便再次重發(fā);MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進(jìn)入空閑模式1;若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進(jìn)入下一次發(fā)射;若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進(jìn)入空閑模式2。
2,接收方
首先將nRF24L01配置為接收模式,接著延遲130μs進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來。當(dāng)接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在RX FIFO中,同時中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應(yīng)答開啟,接收方則同時進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號。最后接收成功時,若CE變低,則nRF24L01進(jìn)入空閑模式1。
-
232323.png
(195.82 KB, 下載次數(shù): 101)
下載附件
2017-4-7 20:36 上傳
-
444444.png
(196.57 KB, 下載次數(shù): 90)
下載附件
2017-4-7 20:36 上傳
-
11111111.jpg
(44.21 KB, 下載次數(shù): 83)
下載附件
2017-4-7 20:36 上傳
-
QQ圖片20160606112059.png
(159.27 KB, 下載次數(shù): 69)
下載附件
2017-4-7 20:36 上傳
-
-
NRF24L01模塊.rar
2017-4-7 20:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
441.39 KB, 下載次數(shù): 86, 下載積分: 黑幣 -5
作者: zhang460204415 時間: 2017-4-7 23:39
這個好東西,一直想學(xué)習(xí)NRF24L01,奈何無人指導(dǎo),且無從入手,感謝樓主。
作者: fiveonew36 時間: 2017-4-8 16:40
很好的資料,難得遇上,先收下了。
感謝分享。
作者: cm7626 時間: 2017-4-17 16:13
感謝樓主 很好的資料,難得遇上,先收下了
作者: ▓逍〓遙◆ 時間: 2017-4-21 18:38
感謝樓主 很好的資料,難得遇上,學(xué)習(xí)了!
作者: Oliver123 時間: 2017-8-9 14:23
很好的資料,難得遇上,先收下了。
感謝分享。
作者: 蛻變 時間: 2017-8-30 12:11
好東西 謝謝分享
作者: xiuyueyuan2013 時間: 2017-8-30 22:18
感謝分享
作者: sxgaocong 時間: 2018-9-5 16:00
剛接觸這,感謝樓主!
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |