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】使用Supervisor来管理Python的进程

    来源 : http://blog.csdn.net/xiaoguaihai/article/details/44750073     1.问题描述 需要一个python的服务程序在后台一直运行,不能让 ...

  2. LRU页面置换算法

    本文以序列长度20的{ 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};以及页面4:为例: #include <stdio.h> #define Init ...

  3. 利用PhantomJS进行网页截屏,完美解决截取高度的问题

    关于PhantomJS PhantomJS 是一个基于WebKit的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS ...

  4. reverseajax(comet) socket 杂记

    http://blog.it985.com/7797.html http://www.ibm.com/developerworks/web/library/wa-reverseajax1/index. ...

  5. 欧拉回路(hdu3018)

    刚学图论不久,看着别人的博客慢慢学了一点基础的,感觉还是有点力不从心,感觉图论的题好多长得都很像,什么太监算法(Tarjan),Kosaraju,当然最基础的还是并查集...好了继续介绍这道题.... ...

  6. HDU 5934 Bomb(炸弹)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  7. [Android] keystore生成

    keytool -genkey -alias agg_keystore -keyalg RSA -validity 20000 -keystore agg.keystore keytool -expo ...

  8. PHP Cookie Session

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

  9. Gevent中的同步与异步详解

    同步,异步概念 1.同步就是发生调用时,一定等待结果返回,整个调用才结束: 2.异步就是发生调用后,立即返回,不等待结果返回.被调用者通过状态.通知来通知调用者,或通过回调函数处理这个调用. 查询 1 ...

  10. js URL中文传参乱码

    js: var searchVal = encodeURIComponent($.trim($('#js_search_val').val()));//搜索的值 encodeURIComponent( ...