nRF24L01芯片控制——迈向无线的第一步

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芯片控制——迈向无线的第一步

时间: 2024-10-06 01:09:47

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

迈向开源的第一步:github

1.github简介         GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath.PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成. GitHub同时提供付费账户和为开源项目提供的免费账户.根据在2009年的Git用户调查,GitHub是最流行的Git访问站点.[2]除了允许个人和组织创建和访问代码库以外,它也提供

函数式编程第一步——流程控制

失落迷茫了好一段日子.终于我用接触2个月的技术Nodejs成功的混到一份工作.严格来说只学习了3天(白天睡觉,晚上通宵学习),后面的时间都是在配置环境.总的来说,函数式编程是有应用的市场的,而且学习门槛也不是太高.就算从来没听说过函数式编程的人也会知道javascript,也会使用jquery.虽然很多是把它当作过程式的来用,来看待.这也是在于它的语法看起来太像C,太像过程式的语言. 之前一直想写一些关于函数编程文章来记录我学习的历程.之前写了一篇使用F#的,不过大家好像对F#比较排斥.以后我从

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

原文:零元学Expression Blend 4 - Chapter 3 熟悉操作第一步(制作一个猴子脸) 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要教你如何建立自己的笔刷. ? 本篇内容会教你如何使用笔刷.钢笔.渐层以及透明度的调整,还有如何转化图层和路径,最重要的是要教你如何建立自己的笔刷. ? ? 就是要让不会的新手都看的懂! ? 01 开始专案 打开Blend後选择Top Menu的 File->New Project(快捷键Shift+

STM32F407第一步之点亮LED

STM32F407第一步之点亮LED. 要点亮LED,首先了解一下F4的GPIO模块.首先看一下STM32F4数据手册,GPIO模块的内部结构图 看上去有点复杂,不要怕,慢慢理解就可以了.对外引脚那里二极管就是保护的作用.通过上.下拉对应的开关配置,控制引脚默认状态的电压,开启上拉的时候引脚电压为高电平,开启下拉的时候引脚电压为低电平,这样可以消除引脚不定状态的影响.但是这个不应该用来作为外部的上拉或下拉用,如按键的拉电阻不能用这个内部来作用,如果用可能会引起按键不稳定. GPIO 具有了“推挽

Linux下的第一步——进度条(gcc&Makefile)

相信大家在初步学习C/C++的时候都写过"hello world"的代码.在学习了C/C++之后进入Linux系统的学习我们不用再从"hello world"这种入门级程序开始了,毕竟已经有了几年的小经验,但是重新开始在一个新的系统下编写代码,特别是对于Linux中庞杂的指令是需要一个熟悉与练习的过程的.进度条的小程序对于我们熟悉指令,练习VIM下代码的编辑以及gcc和Makefile等工具的使用都是很有帮助的. VIM之前已经介绍过了,就不做过多赘述,今天利用这个

乐于接受必然发生的情况,是克服随之而来的任何不幸的第一步!

题记 以下内容摘自<人性的弱点>忧虑部分的核心章节,用以抚慰我最近受伤的心灵.是真理级别的鸡汤.欢迎留言交流. 第十章<跟忧虑说再见> 一.忧虑是健康的大敌 1.焦虑和烦躁不安的人,多半不能适应现实的世界,而跟周围的环境隔断了所有的关系,缩到了自己的梦想世界,以此解决他所忧虑的问题. 2.最使你能轻松愉快的是,健全的信仰.睡眠.音乐和欢笑. --对前途要有信心 --要能睡的安稳 --喜欢好的音乐 --从滑稽的一面来看待生活, 健康和快乐就都是你的. 3.在纷繁复杂的现代世界中,只有

阿里腾讯投资快递只是第一步

2015年5月14日,阿里巴巴集团宣布,其与马云创立的云峰基金已经联合对圆通快递进行了战略投资.双方将共同致力于中国快递物流业的升级,推动行业在管理.产品提升.国际化.农村物流等方面的拓展和变革. 2015年5月16日,物流互联网公司汇通天下宣布与腾讯达成投资协议,完成C轮融资,但并未透露此次融资金额. 快递井喷式发展世人都是有目共睹,面对如此诱人的大蛋糕马云马化腾这两匹骏马又怎能无动于衷呢?其实很早以前就已经伸出了他们贪婪的双手.不过单纯从投资快递这事儿来说,二马的快递梦才刚刚迈出第一步而已.

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

Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋友也越来越多了,作为一门面向对象的编程语言,Java也有着安全.高效等诸多有点.从TIOBE(TIOBE排行榜是根据互联网上有经验的程序员.课程和第三方厂商的数量,并使用搜索引擎(如Google.Bing.Yahoo!.百度)以及Wikipedia.Amazon.YouTube统计出排名数据,只是反映

Linux——搭建PHP开发环境第一步:mysql

原文链接:http://www.jb51.net/article/83647.htm 1.第一步就是看linu是否安装了mysql,经过rpm -qa|grep mysql查看到centos下安装了mysql5.1,那就开始卸载咯 2.接下来就是卸载mysql5.1了,命令:rpm -e mysql-libs --nodeps 3.yum中之后mysql5.1,安装还是5.1,现在就要去增加一个新的repo rpm -Uvh http://mirror.steadfast.net/epel/6/