nRF24L01芯片是一款专供单片机的射频收发芯片。工作于2.4GHz~2.5GHz ISM频段。融合了shockburst技术。

我先列出该芯片的硬件参数资料:
至于每个引脚的具体用途,可以参见技术手册。
一个nRF24L01简易发射系统应该具有以电路:最小系统电路,供电系统,下载程序接口,5v转3.3v电路,nRF24L01模块接口等等
上面是nRF24L01模块的电路原理图,实话说我现在的能力不足,还无法指出各部分电路的作用,因此在这里就不多做解释了。不过我还是尽可能的给出芯片的一些参数,电路设计的时候不要违背这些参数。
最小系统加载芯片后的电路图:
OK硬件的知识我们说到这里,下面来看一看软件的实现。我已经在截图中解释的很清楚了,但是仍然有必有对于一些新手做一些拓展性的指导,因为这将可能使你进一步了解通信这个行业。在我看来,使用一个芯片是一件十分容易的事情,并且当你使用芯片越来越多的时候你就会觉得越来越轻松。我们正在写的这个无线通信协议,在我看来一共只有两个问题在困扰我们:1配置,2数据传输。当我们配置好模式之后,我们只需要给芯片我们要传输的数据即可。那么我们该如何配置芯片的参数呢?先来想一想无线发射的一些基本问题(这里加入了一些安全性的保证): 1我需要知道发射和接受端的地址,2我需要有一个应答机制,这样会保证我的数据传输的准确性,那么我怎么实现这个机制呢?通信原理中要求我先配置应答模式,其次我需要配置未产生应答是的工作方式。3这个是关于24L01的自身设定了,该芯片具有六个通信信道,我要设置具体哪个信道在工作。4关于传输的问题,我应该要求一次性传输几个字节。这些都是必须要规定的,当然在下面我的代码中也确确实实的配置了这几个方面的东西。
下面是关于24L01的模式配置过程:
另外关于通信的一个最简单问题就是SPI通信协议,这个相信学习通信的小伙伴们应该不会不知道才对,这里我只提供了用单片机模拟SPI通信的一段代码,至于想深入了解SPI的请出门右转。大家都看到了,我在配置这个芯片的同时需要一个写入状态的函数,那么这个函数是什么样子的呢?
这里有些命令我写在宏定义中,可能你看不到了,不过没关系,这种东西网上多的是嘛,度年会很亲切的。
配置模式已经完毕了,下面来看一下数据的发送和接受:
从这里我可以看出,其实当拥有了装载数据的函数之后,发射都是十分简单的事情,主要我们把数据装载到芯片中就可以了,那么这个装载的SPI函数是什么呢?
发射与接收模式的不同就在于CONFIG这个寄存器的设置不同,发射模式这个寄存器的最后一位需要置0,那么接收就得置1,所以在判断接收前把这个位设置一下不就可以了。这个函数可以自己写。而且接受函数的应用场景是不同的,为了测设用,通常把这个接受函数写在计算机上,本例是这么做的,不然的话就需要改变我写在上面的发送函数了。关于串口通信的内容学习通信的同学必须要掌握,请出门右转。
至此我的第一个无线通信就做成了,伟大的航海之路从此开始~~~~

nRF24L01芯片控制——迈向无线的第一步的更多相关文章

  1. 零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸)

    原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要 ...

  2. 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux

    开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...

  3. STM32F407第一步之点亮LED

    STM32F407第一步之点亮LED. 要点亮LED,首先了解一下F4的GPIO模块.首先看一下STM32F4数据手册,GPIO模块的内部结构图 看上去有点复杂,不要怕,慢慢理解就可以了.对外引脚那里 ...

  4. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

  5. 面对一个新的MCU,我再也不敢说第一步是点灯了

    折腾了几天AT91SAM3S,今天才算是把开发板上的3个LED点亮. 在点亮之前,起码看了百八十页的Datasheet,动用了N次百度. 各种时钟,看门狗,分散加载,中断向量,都得去整.这些都远远超过 ...

  6. Mirantis MCP 1.0:OpenStack 和 Kubernetes 整合的第一步

    1.前言 Mirantis 公司在2014年9月14日宣布收购 TCPCloud,然后宣布在2017年第一季度会推出全新的私有云产品.从那时候开始,我就一直满怀期待.终于,今年4月19日,Mirant ...

  7. Openstack(企业私有云)万里长征第一步——安装

    一.前言 单位新进了十几台服务器,建了一个高标准的一体化机房,状似刘姥姥进大观园的我,从机房规划到企业私有云搭建一一重头学来,除了机房泥墙其他基本都涉猎到了. 从企业私有云这个名字就能看出这是多么复杂 ...

  8. Andriod开发第一步-部署环境(搬运&&总结)

         第一步:安装JDK      第二步:配置Windows上JDK的变量环境      第三步:下载安装Eclipse      第四步:下载安装Android SDK 配置了JDK变量环境, ...

  9. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化

    拿来主义: python -m cProfile -o profile.pstats to_profile.py gprof2dot -f pstats profile.pstats |dot -Tp ...

随机推荐

  1. 几个简单的css样式使用说明

    假设我们的单标签是一个 div: 定义如下通用CSS: div{ position:relative; width:200px; height:60px; background:#ddd; } 法一: ...

  2. dom节点的操作

    dom节点的操作 -- jQuery 内部插入 1.(结尾)append 方法 . appendto方法(为了方便链式操作) (开头)prepend方法           $('#div1').ap ...

  3. oracle 开窗分析函数和树形结构

    1.row_number() over(partition by ... order by ...)2.rank() over(partition by ... order by ...)3.dens ...

  4. JDBC三层架构

    三层框架: 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. 原理:1:数据访问层:主要是对原始 ...

  5. 微信小程序-媒体组件

    audio 音频. MediaError.code 示例代码: <!-- audio.wxml --> <audio poster="{{poster}}" na ...

  6. 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib的解决方法

    本人菜鸟一个,在编码过程中遇到的问题记录下以备忘,高手别笑.最近在做一个项目,公司的VS版本是2010,家里的VS版本是2012.把公司的项目用2012打开后再用2010打开就出现 未能解析目标框架“ ...

  7. hdu 4920 Matrix multiplication bitset优化常数

    Matrix multiplication Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  8. [转]抓取安卓APP内接口的方法--Charles

    http://blog.csdn.net/yyh352091626/article/details/52759294

  9. phpstorm取消强制换行

    1 取消phpstorm右侧竖线显示 2 取消格式化代码时 自动换行

  10. python画图

    正弦图像: #coding:utf-8import numpy as npimport matplotlib.pyplot as pltx=np.linspace(0,10,1000)y=np.sin ...