nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)
俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经验,希望大家会少走弯路。
Q:最近在选型的时候发现基本常见的无线模块都是3V供电,而我使用的单片机是5V的,它们之间要怎么连接呢?直接连接会不会损坏模块?
回答: 如果你使用的51单片机的P0口是高阻引脚,可以直接将无线模块的IO脚连接到P0端口,并在对应的连线与3V电源间放置1K~10K左右的偏置电阻即可。
如果单片机没有高阻脚(AVR单片机和一些型号的STC单片机等),不适用于上述的方法。
nRF24L01+可以承受5V的输入电压,直接连接单片机的IO脚不会烧坏模块,但是无线模块的输出端最高只能输出3V左右的电压,请注意该电压值是否能被单片机正确识别。

Q:无线模块可以直接和串口连接并进行通讯吗?我想直接把nRF24L01+模块连接到串口电路中,请问这样可以吗?
回答: 不可以,无线模块不提供串行接口。如果需要与计算机等设备通过串口连接和通讯,请使用单片机作为通讯控制核心,接收计算机串口发送的数据并将其传送至无线模块中,并进行发送工作。另一端的无线模块接收数据后,由单片机读出数据并发送给计算机串口。
Q:影响无线模块传输距离的因素有哪些?
为什么nRF2401无线模块的传输距离总是拉不开?现在只有2米左右,输出功率已经是最高的0dBm了。
回答: 呵呵,应该是初学无线模块的最常见问题了。传输距离应该是大家最关心的事情,虽然这是一个直观的数值,但是影响通讯距离的因素却有很多。天线的性能(方向性、增益、驻波比)、无线模块的性能指标(发射功率、接收灵敏度、网络匹配、频率频率的参数的一致性)、无线模块的工作方式(数据传输速率)和使用环境因素等等。所以通讯距离应该是考验一款无线产品综合性能的指标。要想达到理想的距离,应该选择高增益、低驻波比的天线,必要时可以使用定向天线(一些模块是 PCB天线,这种天线应该是性能较差的方式,不过在近距离和小型化方面有优势);选择优质的无线模块,好的无线模块应该具有优秀的匹配网络,将发射与接收信号的损失降到最小,同时也应该具有工作频率准确、一致性好等指标;最后在传输速率的选择上,在能够满足通讯需求的前提下,优先选用低的传输速率也可以有效提高传输距离。
Q:nRF2401A的支持双通道通讯是什么意思?
我看到资料上写着NRF2401具备两个数据通道,这是什么意思呢?只是2401 可以同时在两个通道上完成发送与接收,还是是指2401只能完成两个模块之间的通讯吗?
回答: 这样理解是错误的,nRF2401A的两个数据通道是指它可以同时接收两个通道上的数据,但是发送的时候只能使用一个通道。所以是不能同时在两个通道上完成接收与发送的。同时nRF2401A无线模块属于半双工个工作方式,同一时刻只能工作在发送或接收一种模式。
另外nRF2401A模块并不是只能在两个模块之间进行通讯,只要无线模块的工作模式配置一致(相同的地址码、信道号、传输速率、数据包长度、CRC模式等)即可完成一对一、一对多、多对多的通讯模式。
Q:nRF24L01、nRF24L01+无线模块的6通道是什么含义?
一直在研究nRF24L01的通道关系可是没什么收获,想问一下6通道是指什么,它们之间的关系是什么?
回答: nRF24L01+模块内部带有6个数据通道,使用不同的数据通道进行数据发送时,它们都工作在相同的频率下。它们之间是使用地址码来作为区分的。所以你可以理解为一个nRF24L01可以同时拥有6个地址码,在接收的时候,模块会自动识别地址码,并在对应的寄存器中置位,通知用户是哪个通道接收到数据。
使用nRF24L01+的数据通道可以在少于等于6个节点的网络中大幅增加使用和操作的灵活性。在多于6个节点的网络中,用户可以自行在通讯数据中添加额外的标识数据,对不同节点进行区分工作。
nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)的更多相关文章
- 51单片机对无线模块nRF24L01简单的控制收发程序
它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #defin ...
- STC8H开发(五): SPI驱动nRF24L01无线模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- nRF24L01无线模块笔记
nRF24L01模块 官网链接: https://www.nordicsemi.com/Products/nRF24-series 常见的无线收发模块, 工作在2.4GHz频段, 适合近距离遥控和数据 ...
- STM32F103芯片SPI控制NRF24L012.4G无线模块交互通信实验
1.NRF24L01模块的资料百度搜索一下就有很多.这里我就不做介绍本文主要侧重于应用层面实验介绍与分享. 2.先看下原理图. 根据原理图:写出NRF24L01 C语言驱动文件如下: #includ ...
- STC8H开发(十五): GPIO驱动Ci24R1无线模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- STC8H开发(十六): GPIO驱动XL2400无线模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- XBee PRO 900HP远距离无线模块
XBee PRO S3B也称为XBee-900HP无线模块,它是一款工作在频段900~928MHz之间,基于FHSS跳频技术的远距离无线数传电台核心模块.常用型号如下: 类别 型号 开发套件 XKB9 ...
- 《例说XBee无线模块开发》
<例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...
- CC1101 433无线模块,STM8串口透传
CC1101 433无线模块,STM8串口透传 原理图:http://download.csdn.net/detail/cp1300/7496509 下面是STM8程序 CC1101.C /*** ...
随机推荐
- Deep Learning 教程(斯坦福深度学习研究团队)
http://www.zhizihua.com/blog/post/602.html 说明:本教程将阐述无监督特征学习和深度学习的主要观点.通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为 ...
- 与IE的战斗
对第2版的改进,工作量几乎都在UI上,不断的写css,写js,还别说,总体挺愉快的.特别是把360浏览器用顺了之后,烦人的无法刷新问题也不能困扰我了,改了js或者css文件的话,只要清除一下缓存,就可 ...
- CSS中的图片路径问题
CSS中的背景图片写了相对路径,为什么不显示那? [解决方法] CSS中的背景图片路径应该写成相对于当前CSS文件的路径,而不是针对网站根目录的相对路径.
- hadoop集群配置SSH免登陆
今天给大家总结一下hadoop集群之间免登陆的步骤 node1 ssh node4 1.在node1中生成密钥 [root@node1 ~]# ssh-keygen -t dsa -P '' -f ~ ...
- hdu 1728 逃离迷宫 bfs记转向
题链:http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Mem ...
- Python过滤emoji
参考博客:http://my.oschina.net/jiemachina/blog/189460 1. 将emoji表情替换为指定字符串 import re def filter_emoji(des ...
- Linux shell中一些参数与变量简介
linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...
- unable to find the sources of your current Linux kernel.
运行 sh ./VBoxLinuxAdditions.run 时FAILED,查看日志: /tmp/vbox.0/Makefile.include.header:97: *** Error: unab ...
- 使用SpringBoot创建Web项目
1.pom.xml 引入 <parent> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- Android——复制项目出现Application Installation Failed
今天把一个项目复制到另一个文件夹下,重新打开结果不能正常安装到虚拟机上了. 解决方法: Build——Clean Project :清除一下项目缓存 Build——Rebuild Project ...