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. 3.密码pasuwado————记第一次超越Candy?

    激动人心的2016.11.4模拟赛结束了 更激动人心的是我得了90分,第一次超越豪哥,特立文纪念. 3.密码 [问题描述] 哪里有压迫,哪里就有反抗. moreD的宠物在法庭的帮助下终于反抗了.作为一 ...

  2. tomcat启动超时问题

    当启动tomcat时候出现 Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the s ...

  3. 关于面试别问及Spring如何回答思路总结!

    首先要知道 Spring两大核心IOC和AOP(Java轻量级业务层框架Spring两大核心IOC和AOP原理) IOC: 1.从Java最基本的创建对象开始 如Interface Driven De ...

  4. pyqt4学习笔记

    信号与槽机制 信号与槽机制作为Qt最重要的特性,提供了任意两个Qt对象之间的通信机制.其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数.例如,要将一个窗口中的变化情况通知给另一个 ...

  5. div+css常见浏览器兼容问题以及解决办法

    1.图片下方出现几像素的空白间隙问题说明:这个问题在ie6和ff(火狐)下经常见到,例如 <div><img src=""/></div>这个图 ...

  6. Makefile相关知识

    1. Makefile的编写: 1>. makefile的命名 1. makefile 2. Makefile 2>. makefile中的规则 三部分: 目标(app):依赖(main. ...

  7. Netscape HTTP Cooke File Parser In PHP

    http://www.hashbangcode.com/blog/netscape-http-cooke-file-parser-php I recently needed to create a f ...

  8. springMVC+mybatis+spring整合案例

    1.web.xml a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml <listener> <listener-class ...

  9. 安卓自定义View(一)自定义控件属性

    自定义View增加属性第一步:定义属性资源文件 在/res/values 文件夹下建立"Values XML layout",按照如下定义一个textview的属性 <?xm ...

  10. vCSA加域&vcenter关联域&设置管理员权限

    vCSA 与 Windows vCenter对比 1.部署起来更简单快捷. 2.vCSA基于Linux授权费用节省. 3.功能在6.0之后达到与Windows vCenter一样的功能,之后可能会反超 ...