历史上的今天
返回首页

历史上的今天

今天是:2024年10月16日(星期三)

正在发生

2018年10月16日 | stm32之nRF24L01无线模块(2):无线模块的地址

2018-10-16 来源:eefocus

    可能刚开始接触nRF24L01的童鞋都会注意到例程函数中有两个定义的地址

const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //发送地址

const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; 

    这个非常让人疑惑,为什么地址还是数组,而且网上一搜,几乎所有的例程地址都是这一个,为什么呢,换一个不行吗?下面我们从数据手册和实验两个方面来分析,这里注意下,由于Enhanced ShockBurst 模式采用了自动应答的模式,从而简化了硬件方面程序的编写,几乎所有的例程均是基于这个模式,因此之后的nRF24L01也基于这种模式分析。

    首先看数据手册,这个“地址”确确实实是“address”翻译过来的没有问题,手册中给出了地址的解释和具体的例子,再贴段英语,Each pipe can have up to a 5 byte configurable address. Data pipe 0 has a unique 5 byte address. Data pipes 1-5 share the four most significant address bytes. The LSByte must be unique for all six pipes.什么意思呢,就是有6个通道(这个通道下一篇文章会讲),通道0的地址可以5个8位数,通道1-5,虽然可以设置5个八位数,但是前四个必须是一致的。

stm32之nRF24L01无线模块(2):无线模块的地址TX_ADDRESS和RX_ADDRESS到底是什么?
    数据手册中的说明呢,起码说明了这个地址是可以改的,而且随便改,网上为什么如此一致估计全是复制粘贴的,但这个地址并不是我们硬件的地址能说明通道在哪个位置,而是这个东西就像个协议一样,我发送,你接收,大家一样能识别就行。

    那么识别的机制是什么样的呢,拿板子做个试验就知道了(我这里用的还是stm32f103),大家看了无线模块的例程应该很容易看到NRF24L01_TxPacket()和NRF24L01_RxPacket()这两个函数才是无线模块真正的接收和发送数据的函数,这两个函数中均进行了状态寄存器(看数据手册是0x07)的读取,从而判断数据是否能够发送和接收,我们在编程序的时候可以做个可视化啊,比如用个LCD1602啥的,如果返回发送接收成功就显示数据,不成功就返回fail,显示出来看着更方便一些。

    这里不得不提这个发送模式TX_Mode中的这两行

NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);

NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);

    以及接收模式RX_Mode中的这行

NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);

    接收模式中这个函数是向指定的寄存器中写入地址,当与发送来的地址一致时会接收成功,而发送模式为什么要有两个地址写入呢,这就与Enhanced ShockBurst这个模式有关,仔细看数据手册,这个模式会自动发送应答信号,而应答信号要接收成功才算发送成功,所以发送模式必须写发送的地址,也同时必须写接收端发送应答信号的接收地址,由于自动应答默认发送的地址是接收端写入的地址,因此发送端写入的接收应答信号的地址必须一致,发送端才会认为发送成功。

    ①我们先把发送端的TX_ADDRESS和RX_ADDRESS改成不一样,接收端的地址与发送端的TX_ADDRESS一致,发现发送不成功,但是接收成功了,这就说明发送成功判断依据是那个自动应答,而现在自动应答不匹配了,于是发送端认为发送失败,但是接收端确确实实接收到了数据,因此接收成功。

    ②当我们将接收端使能多个接收通道的时候,又发现了一个神奇?的现象,就是接收端的状态寄存器读出的通道与发送端使用了哪个寄存器完全没有关系,只要接收成功,它认为的通道就是那个寄存器默认的通道,比如我们使用RX_ADDR_P0接收成功,就显示通道0,而换成RX_ADDR_P1就会显示通道1,与发送端的TX_ADDR是没有关系的。

    这两个现象合理解释了nRF24L01的在Enhanced ShockBurst模式下的收发机制,明白了这个,就能清晰地使用多通道操作了。stm32之nRF24L01无线模块(2):无线模块的地址TX_ADDRESS和RX_ADDRESS到底是什么?

    可能有的童鞋还是好奇,这个配置寄存器中有频点的设置啊,那这些个通道是不是一个频率的,答案是肯定的,为什么呢,下回分解,哈哈哈~


推荐阅读

史海拾趣

粤翔(FlyWin)公司的发展小趣事
保护医疗设备中的数据安全,避免因掉电导致的数据丢失或设备故障。
E-Mark Inc公司的发展小趣事

在电子汽车行业初期,XYZ公司主要生产简单的车载电子设备。为了进入欧洲市场,公司决定对其产品进行E-Mark认证。经过严格的测试和审核,XYZ公司的产品质量和安全性能得到了欧洲市场的认可。随着欧洲市场的开拓,XYZ公司逐渐扩大了生产规模,提升了技术水平,最终成为了汽车电子行业的领导者。

C-MAC Automotive公司的发展小趣事

随着公司实力的不断增强,C-MAC Automotive公司开始实施全球化战略。公司先后在欧美和亚洲等地设立研发中心和生产基地,以便更好地满足当地市场需求。通过全球化布局,C-MAC不仅拓宽了市场渠道,还降低了生产成本,提升了整体竞争力。此外,公司还积极参与国际技术交流和合作,不断提升自身的技术水平和创新能力。

Hei Inc Optoelectronic Division公司的发展小趣事
由于控制电路涉及到高温和高压等危险因素,因此需要采取必要的安全防护措施,如设置过热保护、过流保护等。
达晶微(CREATEK)公司的发展小趣事

为了加强研发实力和应用能力,达晶微在上海设立了研发中心和应用中心。这些中心汇聚了来自全球的优秀人才和先进技术,为公司提供了强大的技术支持和创新动力。通过不断研发新产品和拓展新领域,达晶微在电子行业中保持了领先地位。

爱普特微(aptchip)公司的发展小趣事

创立不久,爱普特微电子便迎来了一次重大的技术突破。公司成功研发出了全国产、全自主可控、高可靠性的32位微处理器芯片。这一产品的推出,不仅填补了国内市场的空白,更以其卓越的性能和稳定性,赢得了市场的广泛认可。随后,公司又基于自研IP库及RISC架构内核,量产了一系列全国产高可靠性32位MCU产品,广泛应用于工业控制、物联网、智能家电等领域。

问答坊 | AI 解惑

泰可模块(1)

系列功率模块资料…

查看全部问答>

对英飞凌的希望

英飞凌在世界汽车子的地位是大家都知道的,但我希望英飞凌在中国的技术支持以及销售方面更平民化一点,特别是在MCU上,freescale都在变,我想英飞凌更应该变.…

查看全部问答>

FPGA除法的实现?

在数字信号处理中,FPGA常需要实现除法,我们知道FPGA的库函数中有除法函数, 但我们使用起来还是没有自己设计的方便.关于FPGA实现除法,比较传统的方法就是试商落…

查看全部问答>

老外开源的mini逻辑分析仪,有电路图、软件、固件

http://minila.sourceforge.net/index.php   请同学们关注一下…

查看全部问答>

wince 蓝牙发送文件的问题

{                 WSACleanup();                 return FALSE;         …

查看全部问答>

高手请入

我刚建了QQ技术交流群 专门 为大家提供一个交流的平台 欢迎大家加入 群号36243065…

查看全部问答>

串口的WriteFile問題

BOOL WINAPI WriteFile(   __in         HANDLE hFile,   __in         LPCVOID lpBuffer,   __in         DWORD ...…

查看全部问答>

SDIO接口的WIFI模块是不是直接插到SD卡槽上就能用了???

SDIO接口的WIFI模块是不是直接插到SD卡槽上就能用了???      急,万分感谢. 另外,哪里有USB转SDIO的芯片??给介绍一下?…

查看全部问答>

请教版主,IARSTM8中用汇编写中断服务

                                 请教版主,IAR STM8中用汇编写的中断服务程序,如何指向对应的中断向量?…

查看全部问答>

关于MSP430选型中的LCD Segments问题!

初入论坛,请指教。 需要驱动一块LCD,49mm*21mm,应该是点阵,可显示字母及数字。 初步选型想入MSP430F425A、MSP430F4260,问题来了,425A的LCD段数是128,426是56,我该如何判断LCD需要多少段数呢? 在论坛搜寻了半天也没见这方面资料,望不吝赐 ...…

查看全部问答>