基於stm32的遙控小船(二)NRF24L01無線模塊


無線收發數據我用的模塊是NF24L01……這個模塊小巧而便宜……幾個引腳如圖……功能大概是這樣的

 

CSN:片選,電平為低時芯片工作

CE:CSN為低時控制CE狀態

SCK:SPI時鍾

MOSI:Master output slave input

MISO:Master input slave output

IRQ:中斷,低電平觸發(發送完成,接收數據,達到最大重發次數時觸發)

  關於這個模塊詳細的可以參照《NRF24L01學習筆記》……寫的很全面詳盡……

  調無線對我來說是一個比較痛苦的過程……我有一塊野火的stm32vet6mini板,模塊沒有ISO那么全,但也是“萬事俱備只欠模塊”的學習板,我需要做的就是把這個例程移植到從機(RBT6)上並加以修改,這可難倒我了。當時我想,反正是同一系列芯片,引腳功能大體相同,我這邊連PA0那邊也接PA0不就好了……那么問題來了,VET6是個大板一共100個引腳,而RBT6只有64個腳還未完全引出,板子上根本沒有PDX,PEX等等,無處可連!

  那么怎么辦呢?查數據手冊!表格里給出了引腳的名稱,功能,復用功能,所以我只需要找到相同的功能然后連接就可以了,NSS,SCK,MISO,MOSI兩塊板上對應的均為PA4,PA5,PA6,PA7。查了每個引腳的功能之后,我們還剩下PE5,PE6(CE,CSN)沒有解決……

  例程里采用的是軟件模擬SPI,所以我就找了兩個這次用不到的引腳♪(^∇^*),連線完成!

  我改好程序之后思路大概是這樣的,連上矩陣鍵盤之后檢測按鍵,當有某個按鍵按下時發送一個u8數組里的所有元素給從機,從機接受到數據之后進行相應處理,來決定PWM的占空比。

  在調試的時候又出現了一個問題:無論主機是否工作,從機都會在串口上打印出收到的數據為255 255 255 255。最開始我覺得可能是由於數據格式不對而產生了溢出,但后來發現我把主機和從機的模塊調換一下,就會變成主機接受到從機端的數據為255,255,255,255

  於是我確定了這是模塊的問題!估計是在接線換線過程中把模塊燒壞了,所以一直讀出高電平的數據,換了個模塊之后發送就正常了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM