www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]簡單的NRF2401A單工通信學習筆記

PIAE GROUP 的CAN總線學習板除了讓我們這群菜鳥學習CAN總線外,還設計了與NRF2401無線模塊的接口電路。關于無線模塊,在做畢設的時候就接觸過,那時用的是浦城公司的PT2262/PT2276這樣一對無線編碼收發(fā)模塊,由于時間倉促,當時沒怎么玩,只是拿來和單片機做了下測試,最后并沒有和程序聯(lián)調,挺遺憾的,這下弄來NRF2401該好好玩玩了。

  當時PT2262的編碼原理還在Modelsim上仿真了,感覺PT2262的控制還是比較傻瓜型的,就是一個控制端,四個(六個)數(shù)據(jù)端,是并行傳輸?shù)?。當控制端置位后就把?shù)據(jù)端的數(shù)據(jù)編碼發(fā)送到PT2272接收。PT2262有一個接收狀態(tài)端口接單片機的中斷口,這樣就可以響應并接收數(shù)據(jù)。而NRF2401的控制可不是這么簡單,它的學習最精髓的地方就是18個配置字的設置。通過這些配置字的設置,決定了NRF2401的工作方式,它與CPU的通信是SPI方式,也就是只要一個數(shù)據(jù)線和一個時鐘線就可以完成。另外,PT2262/2272是單工通信,而兩個NRF2401是可以互發(fā)數(shù)據(jù)的。

  今天算是入了門,弄了個最簡單的實驗。上電后A節(jié)點數(shù)碼管顯示0,每按下一次中斷按鍵數(shù)碼管顯示加一,同時A節(jié)點不斷的發(fā)送數(shù)據(jù)到B節(jié)點。B節(jié)點在數(shù)碼管顯示接收到的數(shù)據(jù)。

  先說說A節(jié)點發(fā)送部分的程序。主函數(shù)如下:

  void main(void)

  {

  CPU_init(); //初始化CPU

  NRF2401_init(); //初始化NRF2401A

  while(1)

  {

  sending_data(); //RF發(fā)送數(shù)據(jù)

  led_display(1,Send_data[0]); //發(fā)送數(shù)據(jù)顯示

  }

  }

  先初始化單片機,主要是設置按鍵中斷口。然后是無線模塊NRF2401的初始化,這個初始化過程包括2401與單片機接口的初始化,還有就是命令字的配置,使2401工作在一個希望的狀態(tài)下。初始化后進入主循環(huán),就是發(fā)送數(shù)據(jù)并且顯示發(fā)送的數(shù)據(jù)在數(shù)碼管上。發(fā)送數(shù)據(jù)部分是重點,其實也不復雜,只要控制相應的端口為發(fā)送模式,然后通過SPI協(xié)議往2401寫地址和數(shù)據(jù)就可以了。除此以外,因為有按鍵,所以還要有一個按鍵中斷的程序。

  下面在說一下節(jié)點2接收部分的編程。先看主函數(shù):

  void main(void)

  {

  rx_data_buf[0]=0;

  TxLED=1; //發(fā)射燈滅

  RxLED=0; //接收燈亮,默認為接收模式,準備接收數(shù)據(jù)

  NRF2401_init(); //初始化nRF2401A

  while(1)

  {

  while(!DR1); //DR1是NRF2401的接收數(shù)據(jù)狀態(tài)標志位

  // 0--沒有接收到數(shù)據(jù),1--接收到數(shù)據(jù),等待讀出

  receive();

  led_display(1,rx_data_buf[0]); //顯示接收數(shù)據(jù)

  }

  }

  這個部分開始也是需要初始化,2401的初始化也是端口的初始化和命令字的配置。然后在主循環(huán)里要檢測是否接收數(shù)據(jù)狀態(tài)標志位置位了,如果沒有置位,則程序進入死循環(huán),數(shù)碼管不會有顯示;如果置位了,則繼續(xù)執(zhí)行接收數(shù)據(jù)程序,然后顯示接收的數(shù)據(jù)。接收數(shù)據(jù)程序receive()是重點,因為之前接收標志位已經(jīng)置位了,所以它直接使用SPI方式把接收到的數(shù)據(jù)從2401讀出即可了。

  仔細分析下,似乎并不難,其實動手前還是應該理清下思路,這樣不論對讀別人的程序還是對自己動手寫都是有好處的。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉