吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于stm32f103zet6之NRF905無線模塊的學習

h1654155282.3538 ? 來源:網絡整理 ? 2018-04-12 10:07 ? 次閱讀

stm32f103zet6簡介

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

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

芯片集成定時器CANADC,SPI,I2CUSBUART,等多種功能。

NRF905簡介

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

nRF905融合了ShockBurstTM技術,可以自動處理數據包字頭,且內置CRC校驗功能,確保數據可靠傳輸。nRF905功耗很低,在以-10dBm的功率發射時,工作電流也只有11mA;而對應接收機的工作電流只有12.5 mA,芯片可以軟件設置空閑模式、關機模式,易于節能設計。適合工業數據采集、無線報警及安全系統等諸多領用。

基于stm32f103zet6之NRF905無線模塊的學習

基于stm32f103zet6之NRF905無線模塊的學習

一、硬件

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

基于stm32f103zet6之NRF905無線模塊的學習

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

基于stm32f103zet6之NRF905無線模塊的學習

總結一下這個管腳表的比較重要的信息如下:

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

2、電源3.3V沒有問題,IO口電壓完全兼容匹配,輸出電流也是沒有問題的

3、CD是載波檢測信號,意思是當小編們的模塊作為接收的時候,一旦它接收到發射模塊同一個頻段的信號時,該引腳會被nrf905置高,平常為低!

4、AM是地址匹配的意思,當作為接收模塊的時候,當接收地址和發射地址匹配的時候,那么該引腳會被nrf905置高,平常為低!

5、DR表示數據接收或者發送成功!當一個正確的數據包接收完畢, RF905自動移去字校驗位,然后把DR引腳置高,平常為低!

注意了:CD、AM、DR3個引腳的狀態在小編們調試的時候是非常重要的,所以充分利用這幾個引腳的功能!

硬件方面需要注意的地方小編們已經說完了,接下來分析小編的程序!

二、軟件

首先是發送流程:

1、當微控制器有數據要發送時,通過SPI協議將地址和要發送的數據送傳給RF905,SPI接口的速率在通信協議和器件配置時確定;

2、微控制器置高TRX_CE和TX_EN,這就設置為了發送數據模式

3、RF905發送流程:

(1) 射頻寄存器自動開啟;

(2) 數據打包(加字頭和CRC校驗

(3) 發送數據包;

(4) 當數據發送完成,

(1)(2)倆步自動完成!

4、AUTO_RETRAN被置高,RF905不斷重發,直到TRX_

5、當TRX_CE被置低,RF905發送過程完成,自動進入空閑模式。

注意:ShockBurstTM工作模式保證,一旦發送數據的過程開始,無論

TRX_EN和TX_EN引腳是高或低,發送過程都會被處理完。只有在前一

個數據包被發送完畢,RF905才能接受下一個發送數據包。

然后是接收流程:

1、當 TRX_CE 為高、TX_EN 為低時,RF905 進入 ShockBurstTM 接收模式;

2、650us 后,RF905 不斷監測,等待接收數據;

3、當 RF905 檢測到同一 頻段的載波時,載波檢測引腳被置高;

4、當接收到一個相匹配的地址,AM 引腳被置高;

5、當一個正確的數據包接收完畢, RF905 自動移去字頭、地址和 CRC校驗位,然后把 DR 引腳置高

6、微控制器把 TRX_CE 置低,nRF905 進入空閑模式;

7、 微控制器通過 SPI 口,以一定的速率把數據移到微控制器內;

8、 當所有的數據接收完畢,nRF905 把 DR 引腳和 AM 引腳置低;

9、nRF905 此時可以進入 ShockBu rstTM 接收模式、ShockBurstTM 發送模式或關機模式。 當正在接收一個數據包時,TRX_CE 或 TX_EN 引腳的狀態發生改變,

RF905 立即把其工作模式改變,數據包則丟失。

需要注意的是:小編們設置接收模式的時候,是需要先把數據寫入nrf905模塊,然后才使能發送引腳的!!!

接下來就是拿具體的程序來分析了

A、首先看小編的主函數,很簡單

基于stm32f103zet6之NRF905無線模塊的學習

注意這個模式

B、然后就是這個配置NRF905的函數,這個可是關鍵啊,具體數據的選擇,最好是能看一下芯片手冊,這里小編把代碼貼出來

基于stm32f103zet6之NRF905無線模塊的學習

其實簡單來說給它發的內容就是:

基于stm32f103zet6之NRF905無線模塊的學習

這就是根據寄存器的格式含義來的,其實也沒有什么好說的,但是小編總是懷疑芯片手冊上有些問題,那個應該是433.0MHZ

C、接下來看小編們是怎么實現發送數據的吧,小編把小編的代碼貼出來,然后對著分析就好了。

基于stm32f103zet6之NRF905無線模塊的學習

上述的printf函數都是小編加上的打印函數,方便調試的!

大家可能好奇之前的模式設置是不是出問題了,心想,當設置為發送的時候應該是兩個都選擇為高啊,但是這里要告訴你,傳輸數據的時候,小編是這樣理解的,選擇模式的時候

先將EN失能。然后當小編們通過SPI寫入了數據之后才使用這句

基于stm32f103zet6之NRF905無線模塊的學習

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

D、最后貼上部分驅動函數

基于stm32f103zet6之NRF905無線模塊的學習

基于stm32f103zet6之NRF905無線模塊的學習

基于stm32f103zet6之NRF905無線模塊的學習

基于stm32f103zet6之NRF905無線模塊的學習

基于stm32f103zet6之NRF905無線模塊的學習

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • nRF905
    +關注

    關注

    2

    文章

    89

    瀏覽量

    52524
  • STM32F103ZET6
    +關注

    關注

    9

    文章

    67

    瀏覽量

    21201
收藏 人收藏

    評論

    相關推薦

    [3.2.1]--STM32F103ZET6的時鐘結構

    時鐘STM32F103ZET6
    李開鴻
    發布于 :2022年11月12日 03:15:07

    基于STM32F103ZET6無線語音控制小車設計

    基于STM32F103ZET6無線語音控制小車設計與實現基于STM32F103ZET6無線語音控制小車設計與實現摘要:本文以STM32F103ZET
    發表于 08-23 08:22

    如何學習STM32F103ZET6

    如何學習STM32F103ZET6
    發表于 10-13 07:57

    STM32F103ZET6蜂鳴器實驗

    STM32F103ZET6蜂鳴器實驗文章目錄STM32F103ZET6蜂鳴器實驗前言一、原理圖二、程序源碼1.beep.h2.beep.c3.main.c三、實驗結果總結前言對于
    發表于 01-05 07:46

    STM32F103ZET6按鍵輸入實驗

    STM32F103ZET6按鍵輸入實驗文章目錄STM32F103ZET6按鍵輸入實驗前言一、原理圖二、程序源碼1.key.h2.key.c3.main.c三、實驗結果總結前言對于
    發表于 01-05 06:42

    STM32F103ZET6紅牛電路圖

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

    NRF905工作模式

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

    基于STM32F103ZET6示波器程序

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

    STM32F103ZET6原理圖+PCB文件

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

    STM32F103ZET6數據手冊

    STM32F103ZET6、芯片學習資料、資料齊全,全面介紹了STM32F103ZET6芯片,覆蓋范圍廣。
    發表于 05-13 15:39 ?743次下載

    stm32f103zet6電路圖

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

    STM32F103ZET6最小系統原理圖和PCB

    STM32F103ZET6最小系統原理圖和PCB
    發表于 08-24 17:42 ?338次下載

    stm32學習(二)STM32F103ZET6內部資源講解

    大家好,今天和大家分享一下STM32F103ZET6的版載資源,希望和大家一起學習,一起進步。當然本人目前是一個對庫函數版本的初學者,如果談論不妥的地方,希望大家能夠及時提出,批評指正,本人將不
    發表于 11-05 18:20 ?30次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>學習</b>(二)<b class='flag-5'>STM32F103ZET6</b>內部資源講解

    STM32F103ZET6——控制LED燈

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

    STM32F103ZET6 IAP超級終端

    STM32F103ZET6 IAP 超級終端資料分享
    發表于 11-21 15:24 ?10次下載
    百家乐官网有无规律可循| 在线百家乐电脑| 品尊国际娱乐| 百家乐棋牌技巧| 皇冠网址| 澳门百家乐博牌| 北京市| 百家乐评级网站| 百家乐官网娱乐用品| 新加坡百家乐的玩法技巧和规则 | 必胜娱乐城| 百家乐百姓话题| 百家乐官网太阳城娱乐城| 威尼斯人娱乐开户| 跨国际百家乐官网的玩法技巧和规则 | 百家乐牡丹娱乐城| 百家乐官网家乐娱乐城| TT娱乐城投注,| 百家乐散台| 百家乐官网娱乐城备用网址| 大发888娱乐城客服| 阳宅24山吉凶方位| 百家乐官网必胜| 赌球记| 百家乐压分技巧| 百家乐官网长龙有几个| 百家乐翻天超清| 百家乐官网微笑打| 百家乐官网筹码素材| 广东百家乐扫描分析仪| 线上百家乐官网赌法| 亲朋棋牌捕鱼技巧| 电玩城百家乐技巧| 皇冠百家乐官网的玩法技巧和规则| 爱博彩到天上人间| 澳门百家乐必赢看| 不规则地形做生意风水好吗| 实战百家乐官网博彩正网| 水果机上分器| 百家乐视频象棋| 澳门百家乐官网官网www.bjbj100.com|