0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

h1654155282.3538 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2018-04-12 10:07 ? 次閱讀

stm32f103zet6簡(jiǎn)介

STM32F系列屬于中低端的32位ARM微控制器,該系列芯片意法半導(dǎo)體(ST)公司出品,其內(nèi)核是Cortex-M3。

該系列芯片按片內(nèi)Flash的大小可分為三大類(lèi):小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。

芯片集成定時(shí)器CAN,ADC,SPI,I2CUSB,UART,等多種功能。

NRF905簡(jiǎn)介

nRF905是挪威Nordic公司推出的一款單片射頻發(fā)射器芯片,采用32引腳5mm&TImes;5mm QFN封裝,工作于433、868、915MHz 3個(gè)ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻道,其中國(guó)內(nèi)433頻段可以免費(fèi)使用。nRF905由頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器、調(diào)制器等功能組成,不需要外加聲表濾波器也可以有良好的通信效果。nRF905使用SPI接口可以和任何MCU進(jìn)行通信,其中地址、輸出功率和通信頻道可通過(guò)程序進(jìn)行配置,所以可以用于多機(jī)通信。

nRF905融合了ShockBurstTM技術(shù),可以自動(dòng)處理數(shù)據(jù)包字頭,且內(nèi)置CRC校驗(yàn)功能,確保數(shù)據(jù)可靠傳輸。nRF905功耗很低,在以-10dBm的功率發(fā)射時(shí),工作電流也只有11mA;而對(duì)應(yīng)接收機(jī)的工作電流只有12.5 mA,芯片可以軟件設(shè)置空閑模式、關(guān)機(jī)模式,易于節(jié)能設(shè)計(jì)。適合工業(yè)數(shù)據(jù)采集、無(wú)線報(bào)警及安全系統(tǒng)等諸多領(lǐng)用。

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

一、硬件

nrf905這個(gè)芯片小編們就不談了,涉及到高頻、射頻是比較復(fù)雜,主要針對(duì)如何使用這個(gè)模塊談一談

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

這是涉及到小編們編程的引腳圖, 其中uclk在這里不用,下面請(qǐng)看管腳圖

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

總結(jié)一下這個(gè)管腳表的比較重要的信息如下:

1、nrf905和單片機(jī)通信使用的是SPI協(xié)議,小編這里用的是軟件模擬spi,硬件spi有其他用途

2、電源3.3V沒(méi)有問(wèn)題,IO口電壓完全兼容匹配,輸出電流也是沒(méi)有問(wèn)題的

3、CD是載波檢測(cè)信號(hào),意思是當(dāng)小編們的模塊作為接收的時(shí)候,一旦它接收到發(fā)射模塊同一個(gè)頻段的信號(hào)時(shí),該引腳會(huì)被nrf905置高,平常為低!

4、AM是地址匹配的意思,當(dāng)作為接收模塊的時(shí)候,當(dāng)接收地址和發(fā)射地址匹配的時(shí)候,那么該引腳會(huì)被nrf905置高,平常為低!

5、DR表示數(shù)據(jù)接收或者發(fā)送成功!當(dāng)一個(gè)正確的數(shù)據(jù)包接收完畢, RF905自動(dòng)移去字校驗(yàn)位,然后把DR引腳置高,平常為低!

注意了:CD、AM、DR3個(gè)引腳的狀態(tài)在小編們調(diào)試的時(shí)候是非常重要的,所以充分利用這幾個(gè)引腳的功能!

硬件方面需要注意的地方小編們已經(jīng)說(shuō)完了,接下來(lái)分析小編的程序!

二、軟件

首先是發(fā)送流程:

1、當(dāng)微控制器有數(shù)據(jù)要發(fā)送時(shí),通過(guò)SPI協(xié)議將地址和要發(fā)送的數(shù)據(jù)送傳給RF905,SPI接口的速率在通信協(xié)議和器件配置時(shí)確定;

2、微控制器置高TRX_CE和TX_EN,這就設(shè)置為了發(fā)送數(shù)據(jù)模式

3、RF905發(fā)送流程:

(1) 射頻寄存器自動(dòng)開(kāi)啟;

(2) 數(shù)據(jù)打包(加字頭和CRC校驗(yàn)

(3) 發(fā)送數(shù)據(jù)包;

(4) 當(dāng)數(shù)據(jù)發(fā)送完成,

(1)(2)倆步自動(dòng)完成!

4、AUTO_RETRAN被置高,RF905不斷重發(fā),直到TRX_

5、當(dāng)TRX_CE被置低,RF905發(fā)送過(guò)程完成,自動(dòng)進(jìn)入空閑模式。

注意:ShockBurstTM工作模式保證,一旦發(fā)送數(shù)據(jù)的過(guò)程開(kāi)始,無(wú)論

TRX_EN和TX_EN引腳是高或低,發(fā)送過(guò)程都會(huì)被處理完。只有在前一

個(gè)數(shù)據(jù)包被發(fā)送完畢,RF905才能接受下一個(gè)發(fā)送數(shù)據(jù)包。

然后是接收流程:

1、當(dāng) TRX_CE 為高、TX_EN 為低時(shí),RF905 進(jìn)入 ShockBurstTM 接收模式;

2、650us 后,RF905 不斷監(jiān)測(cè),等待接收數(shù)據(jù);

3、當(dāng) RF905 檢測(cè)到同一 頻段的載波時(shí),載波檢測(cè)引腳被置高;

4、當(dāng)接收到一個(gè)相匹配的地址,AM 引腳被置高;

5、當(dāng)一個(gè)正確的數(shù)據(jù)包接收完畢, RF905 自動(dòng)移去字頭、地址和 CRC校驗(yàn)位,然后把 DR 引腳置高

6、微控制器把 TRX_CE 置低,nRF905 進(jìn)入空閑模式;

7、 微控制器通過(guò) SPI 口,以一定的速率把數(shù)據(jù)移到微控制器內(nèi);

8、 當(dāng)所有的數(shù)據(jù)接收完畢,nRF905 把 DR 引腳和 AM 引腳置低;

9、nRF905 此時(shí)可以進(jìn)入 ShockBu rstTM 接收模式、ShockBurstTM 發(fā)送模式或關(guān)機(jī)模式。 當(dāng)正在接收一個(gè)數(shù)據(jù)包時(shí),TRX_CE 或 TX_EN 引腳的狀態(tài)發(fā)生改變,

RF905 立即把其工作模式改變,數(shù)據(jù)包則丟失。

需要注意的是:小編們?cè)O(shè)置接收模式的時(shí)候,是需要先把數(shù)據(jù)寫(xiě)入nrf905模塊,然后才使能發(fā)送引腳的?。?!

接下來(lái)就是拿具體的程序來(lái)分析了

A、首先看小編的主函數(shù),很簡(jiǎn)單

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

注意這個(gè)模式

B、然后就是這個(gè)配置NRF905的函數(shù),這個(gè)可是關(guān)鍵啊,具體數(shù)據(jù)的選擇,最好是能看一下芯片手冊(cè),這里小編把代碼貼出來(lái)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

其實(shí)簡(jiǎn)單來(lái)說(shuō)給它發(fā)的內(nèi)容就是:

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

這就是根據(jù)寄存器的格式含義來(lái)的,其實(shí)也沒(méi)有什么好說(shuō)的,但是小編總是懷疑芯片手冊(cè)上有些問(wèn)題,那個(gè)應(yīng)該是433.0MHZ

C、接下來(lái)看小編們是怎么實(shí)現(xiàn)發(fā)送數(shù)據(jù)的吧,小編把小編的代碼貼出來(lái),然后對(duì)著分析就好了。

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

上述的printf函數(shù)都是小編加上的打印函數(shù),方便調(diào)試的!

大家可能好奇之前的模式設(shè)置是不是出問(wèn)題了,心想,當(dāng)設(shè)置為發(fā)送的時(shí)候應(yīng)該是兩個(gè)都選擇為高啊,但是這里要告訴你,傳輸數(shù)據(jù)的時(shí)候,小編是這樣理解的,選擇模式的時(shí)候

先將EN失能。然后當(dāng)小編們通過(guò)SPI寫(xiě)入了數(shù)據(jù)之后才使用這句

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

這樣就是為了消除干擾吧,小編是這樣想的。

D、最后貼上部分驅(qū)動(dòng)函數(shù)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

基于stm32f103zet6之NRF905無(wú)線模塊的學(xué)習(xí)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • nRF905
    +關(guān)注

    關(guān)注

    2

    文章

    89

    瀏覽量

    52347
  • STM32F103ZET6
    +關(guān)注

    關(guān)注

    9

    文章

    67

    瀏覽量

    21068
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [3.2.1]--STM32F103ZET6的時(shí)鐘結(jié)構(gòu)

    時(shí)鐘STM32F103ZET6
    李開(kāi)鴻
    發(fā)布于 :2022年11月12日 03:15:07

    基于STM32F103ZET6無(wú)線語(yǔ)音控制小車(chē)設(shè)計(jì)

    基于STM32F103ZET6無(wú)線語(yǔ)音控制小車(chē)設(shè)計(jì)與實(shí)現(xiàn)基于STM32F103ZET6無(wú)線語(yǔ)音控制小車(chē)設(shè)計(jì)與實(shí)現(xiàn)摘要:本文以STM32F103ZET
    發(fā)表于 08-23 08:22

    如何學(xué)習(xí)STM32F103ZET6

    如何學(xué)習(xí)STM32F103ZET6
    發(fā)表于 10-13 07:57

    STM32F103ZET6蜂鳴器實(shí)驗(yàn)

    STM32F103ZET6蜂鳴器實(shí)驗(yàn)文章目錄STM32F103ZET6蜂鳴器實(shí)驗(yàn)前言一、原理圖二、程序源碼1.beep.h2.beep.c3.main.c三、實(shí)驗(yàn)結(jié)果總結(jié)前言對(duì)于
    發(fā)表于 01-05 07:46

    STM32F103ZET6按鍵輸入實(shí)驗(yàn)

    STM32F103ZET6按鍵輸入實(shí)驗(yàn)文章目錄STM32F103ZET6按鍵輸入實(shí)驗(yàn)前言一、原理圖二、程序源碼1.key.h2.key.c3.main.c三、實(shí)驗(yàn)結(jié)果總結(jié)前言對(duì)于
    發(fā)表于 01-05 06:42

    STM32F103ZET6紅牛電路圖

    STM32F103ZET6紅牛電路圖:
    發(fā)表于 09-14 15:29 ?2075次下載
    <b class='flag-5'>STM32F103ZET6</b>紅牛電路圖

    NRF905工作模式

    NRF905工作模式NRF905工作模式NRF905工作模式NRF905工作模式NRF905工作模式NR
    發(fā)表于 11-19 15:24 ?10次下載

    基于STM32F103ZET6示波器程序

    基于STM32F103ZET6示波器程序 非常好的源代碼
    發(fā)表于 12-29 17:25 ?225次下載

    STM32F103ZET6原理圖+PCB文件

    STM32F103ZET6的詳細(xì)資料,原理圖及PCB圖。
    發(fā)表于 05-10 15:12 ?0次下載

    STM32F103ZET6數(shù)據(jù)手冊(cè)

    STM32F103ZET6、芯片學(xué)習(xí)資料、資料齊全,全面介紹了STM32F103ZET6芯片,覆蓋范圍廣。
    發(fā)表于 05-13 15:39 ?739次下載

    stm32f103zet6電路圖

    stm32f103zet6電路圖,有需要的都可以看看。
    發(fā)表于 07-20 15:48 ?66次下載

    STM32F103ZET6最小系統(tǒng)原理圖和PCB

    STM32F103ZET6最小系統(tǒng)原理圖和PCB
    發(fā)表于 08-24 17:42 ?333次下載

    stm32學(xué)習(xí)(二)STM32F103ZET6內(nèi)部資源講解

    大家好,今天和大家分享一下STM32F103ZET6的版載資源,希望和大家一起學(xué)習(xí),一起進(jìn)步。當(dāng)然本人目前是一個(gè)對(duì)庫(kù)函數(shù)版本的初學(xué)者,如果談?wù)摬煌椎牡胤?,希望大家能夠及時(shí)提出,批評(píng)指正,本人將不
    發(fā)表于 11-05 18:20 ?30次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>學(xué)習(xí)</b>(二)<b class='flag-5'>STM32F103ZET6</b>內(nèi)部資源講解

    STM32F103ZET6——控制LED燈

    STM32F103ZET6——控制LED燈
    發(fā)表于 12-03 21:06 ?135次下載
    <b class='flag-5'>STM32F103ZET6</b>——控制LED燈

    STM32F103ZET6 IAP超級(jí)終端

    STM32F103ZET6 IAP 超級(jí)終端資料分享
    發(fā)表于 11-21 15:24 ?10次下載