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. python json操作

    来源 http://www.cnblogs.com/qq78292959/p/3467937.html 什么是json: JSON(JavaScript Object Notation) 是一种轻量级 ...

  2. boost学习笔记(七)---date_time库

    date_time库的日期基于格里高利历,支持从1400-01-01到9999-12-31之间的日期计算 #define BOOST_DATE_TIME_SOURCE #include <boo ...

  3. C#字节数组转换成字符串

    C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...

  4. eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案

    pom文件提示信息: Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.4.3 from http:/ ...

  5. js canvas压缩图片上传

    $('input[type="file"]').on('change',function(){ var files = !!this.files ? this.files : [] ...

  6. Maven 手动添加 JAR 包到本地仓库

    Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个人共用,有时候用 Maven 来远程下载 JAR 包会显得很慢 ...

  7. j.APR连接器整体框图(含SSL实现分析)

    APR连接器的思路和bio,nio的整体架构也是类似的,可以看到下面的整体框图: 第一个区别是,对于从Acceptor线程中的socket解析这块,无论是nio还是bio都是在Acceptor线程内直 ...

  8. String根据、拆分

    String cla="信1305.信1304.信1204.信1103.信1403"; while(cla.contains(".")){ int a=cla. ...

  9. Android实现帧动画,以及出场时的动画

    最近有个小需求,在数据上传的时候加一个上传的动画,然后就寻思着自己写一个帧动画 上传开始的时候调用动画,上传结束通知容器将其删除(这个方法应该不会太耗内存),然后吐槽下gif图片还是我自己一帧一帧从p ...

  10. flask笔记2-程序的基本结构

    第一个flask web程序 1.初始化(所有flask程序都必须创建一个程序实例,程序实例是Flask类的对象): from flask import Flask app = Flask(__nam ...