NRF24L01無線發(fā)射簡易教程_第1頁
NRF24L01無線發(fā)射簡易教程_第2頁
NRF24L01無線發(fā)射簡易教程_第3頁
NRF24L01無線發(fā)射簡易教程_第4頁
NRF24L01無線發(fā)射簡易教程_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、NRF24L01 簡易教程先來看接口電路,使用的 IO 口不是唯一的哦,可隨意定義接口,當(dāng)然是在使用 IO 口模 擬 SPI 且 IRQ 中斷引腳不使用的使用查詢方法判斷接收狀態(tài)的情況下了。作為初探我們就是 用簡單的 IO 模擬 SPI 的方法了,中斷使用查詢的方式。那么該教程講解的接口與單片機的 連接如下:首先您需要了解 NRF24L01,請參閱“NRF24L01 芯片中文資料”或者“NRF24L01 芯片英 文資料”。我們的教程是以一個簡單的小項目為大家展示 NRF24L01 的使用方法與樂趣。我們所寫 的教程均是以這種方式的呢,讓您在學(xué)習(xí)的時候明白它能做什么,使您學(xué)起來不至于枯燥 無味。

2、作為簡易的教程,我們只需要知道它是怎么使用的就夠了,我們本教程的目的是用 NRF24L01 發(fā)送數(shù)據(jù)和接收數(shù)據(jù),且接收方會對比發(fā)送的數(shù)據(jù)與接收的數(shù)據(jù),若完全相同則 控制 LED 閃爍一次,并且把接收到的數(shù)據(jù)通過串口發(fā)送到 PC 端,通過串口工具查看接收到 的數(shù)據(jù)。具體的要求如下:1、 具備發(fā)送和接收的能力。2、 發(fā)送 32 個字節(jié)的數(shù)據(jù),接收方接收到正確數(shù)據(jù)之后給予提示,通過 LED 閃爍燈形 式。3、 把接收到的數(shù)據(jù)傳送到 PC 進(jìn)行查看。4、 發(fā)送端每隔大約 1.5 秒發(fā)送一次數(shù)據(jù),永久循環(huán)。 以上是程序的要求,若您想自行設(shè)計出硬件接口,您也是可以添加一條呢:使用 DIY 方式設(shè)計 NRF

3、24L01 的接口板,且包含含單片機平臺,使用 PCB 方式或者萬用板方式均可。如 果您想讓自己學(xué)的很扎實,那么推薦您自行做出接口板子呢。當(dāng)然若您的能力不足,那么我 們不推薦自行做板呢,因為這樣會增加您學(xué)習(xí)的難度,反而起到了反效果呢。我們使用的方式是畫 PCB 的方式呢,若您自己做了接口板子,那么您可以對比下一呢,O(_)O!我們知道 NRF24L01 的供電電壓是 1.9V3.6V 不能超過這個范圍,低了不工作,高了可 能燒毀 NRF24L01 芯片。我們常用的 STC89C52 的單片機的供電電壓是 5V,我們不能直接給 24L01 這個模塊供電,我們需要使用 AMS1117-3.3V 穩(wěn)

4、壓芯片把 5V 轉(zhuǎn)成 3.3V 的電壓為 24L01 模塊供電。為此我們的設(shè)計原理圖如下:包含單片機最小系統(tǒng)、供電系統(tǒng)、下載程序接口、5V 轉(zhuǎn) 3.3V 電路、NRF24L01 模塊接口。并且全部引出單片機的 IO 口,另外還加了 5 個電源輸出接 口,為擴展使用。還包括了電源指示 LED 以及一個 IO 口獨立控制的 LED,這個獨立控制的 用于 NRF24L01 接收成功閃爍指示。為了保證系統(tǒng)的穩(wěn)定性,在設(shè)計中添加了兩個濾 波電容。JP1JP2P10P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P34 P35 P36 P37 X1 X2 V

5、CC P02P03P00P01 P04 P05 P06P07 EAALE PSENP27P26 P25P24P23 P22 P21P20HEADER 20 HEADER 20GNDIO擴展VCCC4104U1VCC J5VCCJ2GNDVCC 12345P10P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P34 P35 P36 P37 X1 X2 GND 4039 38 3736 3534 3332 3130 ALE29 PSEN 28 P2727 P26 26 P2525 P24 24 P2323 P22 22 P21 21 P20排阻J3J

6、121VCC EA_ENVCCD1 R2VCC GNDSTC89C52LED5.1KGND電源及其擴展STC89C52主控C1 X130pF XTAL1GNDC212MHzX230pF晶振電路VCCKEY2RSTC310uFRSTR1 10KGND復(fù)位電路1234567891011121314151617181920C5 220uF3. 3VCC123DC1 GND 1KEY1Switch2DCIN1P10VCCP11P00P12P01P13P02P14P03P15P04P16P05P17P06RSTP07P30EA/VPP31ALE/P P32/INT0 PSEN P33/INT1 P27P

7、34/T0P26P35/T1P25P36/WRP24P37/RDP23X1P22X2P21GNDP202345678910111213141516171819201P002P013P024P0356P04P0578P06P079EA C6C710uFGND OUTU2 LM1117_3.3V10uFGND12345 GNDGND1 23 45 67 8P13.3P24P22 P20P25P23 P21CECSNSCKMISOIRQ R3P26LED5.1KHeader 4X2 VCCD21234567891011121314151617181920J4VCC12 P30 3 P314串口下載G

8、NDPCB 布線圖如下:207 26 23 20 111213 4 5 6 7 8 9 10 1112131415161718192 7 5 3 152112 8 64 2434039 38 37 36 35 34 33 32 31 30292825242221212 111234567892 11 6 5 41 212 212212121212 25 3 2 14 1212345678910 1112131415 16 171819 2031132424 3 2 1 2 21234567891112131415 16 171819 201完成效果圖如下:背面圖:上 面 PCB 的 背 面有

9、個 小芯 片 和兩 個 0805 的 元件 , 他 們是 什 么呢 ? 他們 就 是AMS1117-3.3V 和兩個貼片的濾波電容,為 NRF24L01 提供 3.3V 電源的電源轉(zhuǎn)換部分。 大家有興趣也可以自己做呢。也許大家有疑問,能不能用呢?放心好了,我們的例程就是以這個板子為基板的,沒有 任何問題。這個板子是不是感覺很不錯呢,呵呵!它不僅僅是可作為最小系統(tǒng)使用,而且還 是 NRF24L01 的接口板呢,省去了另外還要做電源轉(zhuǎn)接板以及各種插線的痛苦,O(_)O! 寫這個教程時我也覺得非常好使呢。板子做好了,我們看看 24L01 怎么來操作吧,這也是本教程的重點呢。我們呢就按照上 面的功能要

10、求來設(shè)計這個程序。在程序設(shè)計之前先了解下 NRF24L01。NRF24L01 是 NORDIC 公司最近生產(chǎn)的一款無線通信通信芯片,采用 FSK 調(diào)制,內(nèi)部集 成 NORDIC 自己的 Enhanced Short Burst 協(xié)議??梢詫崿F(xiàn)點對點或是 1 對 6 的無線通信。 無線通信速度可以達(dá)到 2M(bps)。NORDIC 公司提供通信模塊的 GERBER 文件,可以直接 加工生產(chǎn)。嵌入式工程師或是單片機愛好者只需要為單片機系統(tǒng)預(yù)留 5 個 GPIO,1 個中斷 輸入引腳,就可以很容易實現(xiàn)無線通信的功能,非常適合用來為 MCU 系統(tǒng)構(gòu)建無線通信功 能。功能描述:真正的 GFSK 單片式收

11、發(fā)芯片 內(nèi)置硬件鏈路層增強型 ShockBurstTM 功能 自動應(yīng)答及自動重發(fā)功能 地址及 CRC 檢驗功能 無線速率: 1 或 2Mbps SPI 接口速率:08Mbps 125 個可選工作頻道很短的頻道切換時間,可用于跳頻 與 nRF 24XX 系列完全兼容I/O 可接受 5V 電平的輸入 20 腳 QFN 4×4mm 封裝 極低成本晶振±60ppm使用低成本電感和雙面 PCB 板 低工作電壓:1.93.6V應(yīng)用領(lǐng)域:無線鼠標(biāo),鍵盤,游戲機操縱桿 無線數(shù)據(jù)通訊無線門禁 安防系統(tǒng) 遙控裝置 遙感勘測 智能運動設(shè)備 工業(yè)傳感器 玩具我們常見的 2.4GHz 無線鍵盤鼠標(biāo)有

12、些就是使用此無線技術(shù)實現(xiàn)的呢。NRF24L01 引腳功能說明:引腳分別為 CSN、SCK、MISO、MOSI、IRQ、CE。 CSN:芯片的片選線,CSN 為低電平芯片工作。 SCK:芯片控制的時鐘線(SPI 時鐘) MISO:芯片控制數(shù)據(jù)線(主入從出) MOSI:芯片控制數(shù)據(jù)線(主出從入)IRQ:中斷信號。無線通信過程中 MCU 主要是通過 IRQ 與 NRF24L01 進(jìn)行通信。 CE: 芯片的模式控制線。 在 CSN 為低的情況下,CE 協(xié)同 NRF24L01 的 CONFIG 寄 存器共同決定 NRF24L01 的狀態(tài)。NRF24L01 主要有以下幾種工作狀態(tài):Power Down M

13、ode:掉電模式 Tx Mode:發(fā)射模式Rx Mode:接收模式Standby-1Mode:待機 1 模式Standby-2 Mode:待機 2 模式我們使用的模式主要為發(fā)射模式和接收模式。下面來看看怎么配置這些模式吧。我們知道NRF24L01 的通信協(xié)議為SP(I SPI的協(xié)議請大家查閱相應(yīng)資料,百度一下你就會有收獲哦?。?,所以我們看看 SPI 協(xié)議怎么寫(IO 口模擬,STC89C52 沒有硬件 SPI,若您會了 STC12C5Axxxx系列的單片機那么您可以使用硬件的 SPI,將會更加的方便高效)。調(diào)用是用下面的語句進(jìn)行的。以上為 IO 口模擬 SPI 的代碼,通用于任何擁有可操作 I

14、O 的微處理器,需要做好位運算 處理。代碼的解釋如程序中的注釋所示。非常詳細(xì)的注釋哦!也采用了自己喜歡的編程風(fēng)格, 您也可以借鑒的呢!我們主要是來看看它的配置過程。我想對于一種芯片它的正確配置是大家最為關(guān)心的, 有時您也許會為了這些配置問題而傷腦筋。我們先來看發(fā)射模式改怎么配置的。發(fā)射模式的配置順序:1.設(shè)置 TX 節(jié)點的地址,也就是發(fā)射地址,接收端需與這個地址相同,否則接收不 到數(shù)據(jù)。寄存器為:TX_ADDR2.設(shè)置 RX 節(jié)點的地址,也就是接收時的地址,如果是在發(fā)射模式下那么功能是為 自動應(yīng)答服務(wù)的(AUTO ACK)。寄存器為:RX_ADDR_P03.允許 AUTO ACK 功能,意思是

15、發(fā)送數(shù)據(jù)后都會等待接收端的應(yīng)答信號,目的是保 證數(shù)據(jù)正確發(fā)送。寄存器為:EN_AA4.設(shè)置允許的接收通道,總共有 6 個通道,我們只使用通道 0,其他通道的功能應(yīng) 用大家熟悉了 NRF24L01 之后嘗試吧。寄存器為:EN_RXADDR5.配置自動重發(fā)次數(shù)。寄存器為:SETUP_RETR6.選擇通信的頻率。寄存器為:RF_CH7.設(shè)置接收通道 0 的接收數(shù)據(jù)有效寬度,與第四步對應(yīng)。寄存器為:RX_PW_P08.配置發(fā)射的參數(shù),主要為低噪放大器增益、發(fā)射的功率、無線傳輸?shù)乃俾?。寄?器為:RF_SETUP9.配置收發(fā)狀態(tài)(這時配置為發(fā)射模式),CRC 校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式。 寄存器為:C

16、ONFIGTX 發(fā)射模式的配置就是如此了。我們從第一行看看他是什么意思。 第一步設(shè)置 TX 的地址,調(diào)用了函數(shù) SPI_Write_Buf(),它的原型是:WRITE_REG 是寫寄存器指令的基地址,TX_ADDR 是相對于基地址的偏移量,WRITE_REG+ TX_ADDR 就是設(shè)置發(fā)送地址的寄存器了。若您不明白這些概念,也沒關(guān)系,知道是這樣使 用的就行了。這兩個常量是用宏定義來定義的,原型如下:TX_ADDRESS 就是要設(shè)置的地址了,NRF24L01 的地址是 5 個字節(jié)的,也就是 40 位。TX_ADR_WIDTH 就是致命這個地址的長度了。他們的定義如下:有這些命令和數(shù)據(jù),再結(jié)合 S

17、PI_Write_Buf()這個函數(shù)就可以實現(xiàn)對 NRF24L01 本地發(fā)射 地址的設(shè)置了。由 SPI_Write_Buf()這個函數(shù)我們可以看到,它的寫入方式是:先設(shè)置將要操 作的寄存器地址(這里是本地發(fā)射地址寄存器),然后再連續(xù)寫入地址數(shù)據(jù)的信息,也就是 TX_ADDRESS 數(shù)組中的地址數(shù)據(jù)。注意接收端的地址與這個必須一模一樣。那么第二句也是跟第一句同理的,操作的方式一模一樣,只是選擇的地址和寫入的數(shù)據(jù) 不一樣而已。如果您想深入了解,那么就是用編譯器 keil 的跟蹤功能查看各個寄存器的意義吧,程序 和硬件我們都有配套提供。后面的寄存器操作使用的函數(shù)都是 SPI_RW_Reg(),原型如

18、下:可以看到它的功能是選擇一個寄存器然后寫入這個寄存器的操作命令,是單字節(jié)進(jìn)行的。 那么它是如何操作的呢?它也是 SPI_Write_Buf()類似,先選擇寄存器然后向這個寄存器寫入 命令或數(shù)據(jù)。到這呢我想對于很多剛學(xué)習(xí)不久的朋友來說,這些寄存、寄存器的數(shù)據(jù)或命令 都是一些字節(jié)數(shù)據(jù) 8 位、16 位或者其他,總是搞不清楚他們到底是怎么一回事,說實話這 些在當(dāng)時也困擾了我很長時間,這主要是這樣的概念我們還沒接受導(dǎo)致的,原來老師也總是 跟我們將教室的門牌號和教室里學(xué)生之間的關(guān)系,由于剛接觸很難真正理解。總之簡單一句 話,如果你想找到在教室 101 房間的一個同學(xué),那么你就得先找到 101 這個教室

19、,然后再去 找你想找的同學(xué)。程序中的寄存器和寄存器中的數(shù)據(jù)跟這個也是相同的概念,你要操作一個 命令位或者字節(jié),那么你得先定位它的位置(寄存器),才能對它正確無誤的操作。言歸正 傳,我們在操作一個芯片時,對其的控制都是以這種方式進(jìn)行的:先選擇寄存器然后向這個 寄存器寫入(或讀出)命令(狀態(tài))或數(shù)據(jù)。以上的這些需要大家慢慢體會了,不明白也不影響我們使用這個 NRF24L01 的,呵呵! 緊接著就是第三步到第九步了,我想大家又會有疑問了:為什么寄存器后面寫入的數(shù)據(jù)要是那樣的呢?這就需要知道他們各個位的意義了。我們看下圖就能明白了。我們那 EN_AA 來舉例說明:可以看到它的寄存器偏移是 0x01,這

20、里說明一下,如果想要進(jìn)行寫操作那么操作的寄 存器地址是 WRITE_REG + EN_AA,也就是 EN_AA 加上寫指令的基地址,若是讀操作那么是 READ_REG + EN_AA,也就是 EN_AA 加上讀指令的基地址。我們看看 EN_AA 這個寄存器的功能是什么。它的位為 8 位初始化的值為 00111111 即。0x3f,每個位的功能上表已經(jīng)很詳細(xì)了 這個送的數(shù)據(jù)是 0x01,那么表示什么意思呢?意思是允許數(shù)據(jù)通道 0 自動應(yīng)答,而其他的通 道禁止,明白了吧。其他的都是這個樣子滴。這是 NRF24L01 設(shè)置發(fā)射模式時的初始化過程。下面我們看看怎么用 NRF24L01 進(jìn)行無 線數(shù)據(jù)發(fā)

21、射傳輸。我們從主函數(shù) main 開始。主函數(shù)很簡單,我們?yōu)槟峁┝藘蓚€模式的發(fā)射方式:手動發(fā)射(按鍵控制)和自動發(fā) 射(每隔一段時間發(fā)送一次數(shù)據(jù))。這是模式 1,該模式為自動發(fā)射。可以看到主函數(shù)調(diào)用的就是模式 1,對于模式 0 手動 方式,大家把主函數(shù)的 Mode1 改為 Mode0 就可以驗證了。詳細(xì)請看程序源碼。在 Mode1()這個函數(shù)中我們看看是怎么樣的一個操作順序。先延時 1500ms 左右,然后 裝載數(shù)據(jù)到 NRF24L01,LED 的操作就很簡單了只是一個提示的作用,最后再清除 NRF24L01 的狀態(tài)標(biāo)志位,為下一次發(fā)送數(shù)據(jù)準(zhǔn)備。大家要了解數(shù)據(jù)的發(fā)送是這個樣子的。SPI_RW_

22、Reg() 這 個函 數(shù) 就 不多 說 了, 目 的與 前 面所 說 的 是一 樣 的。 我 們 來看 看NRF24L01_TxPacket 這個函數(shù)。注釋的部分是裝載接收端的地址,也就是為應(yīng)答信號服務(wù)的,由于在初始化的時候已經(jīng) 初始化過了,所以這里可以不需要,但是當(dāng)您使用 NRF24L01 跟多的功能時,如使用了多通 道通信,需要應(yīng)答時,這句就有用了,需要設(shè)置為對應(yīng)接收通道的地址才能收到應(yīng)答信號。 這些功能大家知道就可以了,本教程也是讓大家會用 NRF24L01,后續(xù)還是靠大家自行努力 了。接著是裝載數(shù)據(jù)了,WR_TX_PLOAD 是裝載數(shù)據(jù)的命令地址,tx_buf 是接收的數(shù)據(jù)指針,TX_

23、PLOAD_WIDTH 是指要發(fā)送的數(shù)據(jù)字節(jié)數(shù)。定義如下:注意 TX_PLOAD_WIDTH 最大為 32 字節(jié),不得操作此數(shù)。 數(shù)據(jù)裝載完成后需要的是發(fā)送命令了。這句就是設(shè)置了為發(fā)送 的狀態(tài),在 CE 被拉高的時間里自動啟動發(fā)送。那么緊接著 CE=1 就是此目的了。CONFIG 為什么設(shè)置數(shù)據(jù)為 0x0e 就是發(fā)送呢,那么看下這個寄存器各個位的功能就明白 了??纯醋畹臀坏墓δ埽? 接收模式0 發(fā)射模式,這明白了吧。其他位大家自己看看是什 么功能吧。這樣一個完整的發(fā)射過程就完成了,剛才說了 Mode1()是循環(huán)發(fā)射模式,一次完成后就 會進(jìn)入下一次發(fā)射了。那么到這里我們的項目任務(wù)算是完成了一半了

24、,還剩下另一半了。 看了發(fā)射模式之后,我們再來看接收模式就不會很困難了。接收模式的配置初始化為:1.設(shè)置 RX 節(jié)點的地址,也就是接收時的地址,如果是在發(fā)射模式下那么功能是為 自動應(yīng)答服務(wù)的(AUTO ACK)。寄存器為:RX_ADDR_P02.允許 AUTO ACK 功能,意思是發(fā)送數(shù)據(jù)后都會等待接收端的應(yīng)答信號,目的是保 證數(shù)據(jù)正確發(fā)送。寄存器為:EN_AA3.設(shè)置允許的接收通道,總共有 6 個通道,我們只使用通道 0,其他通道的功能應(yīng) 用大家熟悉了 NRF24L01 之后嘗試吧。寄存器為:EN_RXADDR4.選擇通信的頻率。寄存器為:RF_CH5.設(shè)置接收通道 0 的接收數(shù)據(jù)有效寬度。

25、寄存器為:RX_PW_P06.配置發(fā)射的參數(shù),主要為低噪放大器增益、發(fā)射的功率、無線傳輸?shù)乃俾省<?存器為:RF_SETUP7.配置收發(fā)狀態(tài)(這時配置為接收模式),CRC 校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式。 寄存器為:CONFIG注意接收模式的一些設(shè)置如第 1、2、3、4、5、6 中的數(shù)據(jù)參數(shù)要與發(fā)射模式的一致。為此操作起來就更加簡單了。從上面的初始化方式我們可以看到接收與發(fā)射的設(shè)置基本 一致,只是接收模式中少了 2 個操作,設(shè)置 TX 地址和設(shè)置重發(fā)次數(shù),對于接收這兩個設(shè)置 時無關(guān)緊要的,所以設(shè)置不設(shè)置我們都不會用,那么我們在接收模式中仍然可以使用發(fā)射模 式下的初始化函數(shù) Init_NRF24L

26、01(),我們的例程就是如此。發(fā)射與接收模式的不同就在于 CONFIG 這個寄存器的設(shè)置不同,發(fā)射模式這個寄存器的最后一位需要置 0,那么接收就得置 1,所以在判斷接收前把這個位設(shè)置一下不就可以了。 我們寫一個函數(shù)來實現(xiàn)這個功能:在接收模式中我們最需要注意的就是這個接收模式的設(shè)置了。向 CONFIG 些 0x0f 就可以 把最后一位設(shè)置為 1 了,就成了接收模式了。我們也從主函數(shù)出發(fā),看看是怎么操作的。前面的初始化我們需要了解的是 InitUSART()這個函數(shù),我們項目最開始的要求有一項是 接收端接收到的數(shù)據(jù)需要發(fā)送到 PC 進(jìn)行查看,InitUSART()這個函數(shù)就是初始化串口通信的。 看

27、它的原型:這個初始化就不多說了,對于不同的波特率使用注釋中給的公式即可算出定時器的初值 了。注意使用的是定時器 1 而不是定時器 0。串口發(fā)送數(shù)據(jù)的函數(shù)是 Rx_Byte()源碼如下:只要按照 Rx_Byte(Dat)這樣調(diào)用就能把 Dat 這個數(shù)據(jù)發(fā)送到 PC 了,PC 需要用串口助手 來查看數(shù)據(jù),我們使用的 STC-ISP 下載軟件即可使用,設(shè)置如下:選擇到串口助手界面,在下面設(shè)置 COM 口和波特率,其他默認(rèn)就可以了。點擊這個按鈕就可進(jìn)入串口助手模式了。我們接著看主函數(shù)的代碼,LED=1 是熄滅 LED 的,如果接收不到數(shù)據(jù)那么是長滅的狀態(tài), 接收到數(shù)據(jù)且數(shù)據(jù)完全正確后才被點亮一段時間(

28、閃爍一下的效果)用于提示。緊接著是 這個 if 條件語句,它就是查詢判斷 NRF24L01 的接收狀態(tài)的。我們來看著這個被調(diào)用的函數(shù):是讀取 NRF24L01 的狀態(tài),目的是判斷是否有數(shù)據(jù)接收。的地址。SPI_Read()的源碼為:是 STATUS 的宏定義,是狀態(tài)寄存器前面說了所有的寄存器操作都是先設(shè)置寄存器地址,然后在寫(或讀)數(shù)據(jù)或命令() 狀 態(tài) 。 那 么 這 里 呢 SPI_Read() 這 個 函 數(shù) 就 不 說 了 。 這 里 值 得 一 提 的 是這個調(diào)用,傳入的實參是,有很多人不明白這個。這里呢簡單說一下,可以看到對于讀來說這個數(shù)據(jù)是沒有用的,所以 可以是任何的數(shù)據(jù)。然而習(xí)慣上都愛使用 0xff,希望大家慢慢能夠明白。在 NRF24L01_RxPacket()這個函數(shù)中還有個特別的變量 sta,它的聲明為:可以看到這個使用了位操作,目的是什么呢?這樣可以使位操作變得非常簡單,對于判 斷狀態(tài)是很有用的。我們來看 STATUS 這個寄存器的意義:可以看到對于接收我們需要判斷 RX_DR 這個位是否為 1,為 1 就表示有數(shù)據(jù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論