0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

2.4G NRF2401的无线通讯实现

要长高 来源:cnblogs 作者:Kevin1207 2022-06-27 15:30 次阅读

RF24L01+,是工作在2.4~2.5GHz 频段的,具备自动重发功能,6 个数据传输通道,最大无线传输速率为2Mbits。MCU 可与该芯片通过SPI 接口访问芯片的寄存器进行配置,达到控制模块、通过该模块实现无线通讯的目的。

具体细节参考《《野火STM32--2.4G无线传输》》

优点:不需要建立连接就可以进行收发

PCB管脚

poYBAGK5W8SAT7x6AAMSIsSPThU969.png

其中各个接口作用如下

pYYBAGK5W8qAE4Y_AACDRpsiEkQ314.png

在应用中我们需要一对收发,也就是一个主机和一个从机。主机和从机的驱动部分是一样的(配置文件SPI_NRF.c 文件相同),区别是main函数中调用的模式不同,主机一般是发送模式NRF_TX_Mode();,而从机采用的是接收模式 NRF_RX_Mode();

应用的基本流程

注意事项:

(1)首先要检查接线,一般配置的是SPI1,然后要对应程序里面的配置来接线

SPI1

SCK = PA5 MISO = PA6 MOSI = PA7

CE = PA4 CSN =PC4 IRQ = PC5

poYBAGK5W9GAayqwAACKCJjyfpY745.png

后两个是作为普通IO口,任意管脚均可

从机部分:

(1)SPI_NRF_Init(); //初始化SPI接口

(2)NRF_RX_Mode(); // 设置为接收模式

(3)while循环里等待接收,判断接收状态,并进行接收

#include “stm32f10x.h”#include “bsp_usart1.h”#include “bsp_spi_nrf.h”u8 status; //用于判断接收/发送状态u8 rxbuf[4]; //接收缓冲u8 i;

int main(void)

{

/* 串口1初始化 */

USART1_Config();

/*SPI接口初始化*/

SPI_NRF_Init();

printf(“\r\n 这是一个 NRF24L01 无线传输实验 \r\n”);

printf(“\r\n 这是无线传输 从机端 的反馈信息\r\n”);

printf(“\r\n 正在检测NRF与MCU是否正常连接。。。\r\n”); /*检测NRF模块与MCU的连接*/

status = NRF_Check();

if(status == SUCCESS)

printf(“\r\n NRF与MCU连接成功\r\n”);

else

printf(“\r\n 正在检测NRF与MCU是否正常连接。。。\r\n”);

NRF_RX_Mode(); // 设置为接收模式

printf(“\r\n 从机端 进入接收模式\r\n”); while(1)

{

/*等待接收数据*/

status = NRF_Rx_Dat(rxbuf); /*判断接收状态*/

switch(status)

{ case RX_DR: for(i=0;i《4;i++)

{

printf(“\r\n 从机端 接收到 主机端 发送的数据为:%d \r\n”,rxbuf[i]);

}break;

case ERROR:

printf(“\r\n 从机端 接收出错。 \r\n”);break;

}

}

}

主机部分:

(1)SPI_NRF_Init(); //初始化SPI接口

(2)NRF_TX_Mode(); // 设置为发送模式

(3)发送数据,查看发送状态,否则重发。比如用按键中断来进行一次发送

注:一般都会显示超时,但是实际接收端有接收到。

初始化和配置与从机相同,除了TX模式

发送部分的代码:

void EXTI0_IRQHandler(void)

{ int i=0; if(EXTI_GetITStatus(EXTI_Line0) != RESET) // 确保是否产生了EXTI Line中断!! { for(i=0;i《4;i++)

txbuf[i]+=1;

printf(“\r\n exit \r\n”);

status = NRF_Tx_Dat(txbuf);

switch(status)

{ case MAX_RT:

printf(“\r\n 主机端 没接收到应答信号,发送次数超过限定值,发送失败。 \r\n”); break; case ERROR:

printf(“\r\n 未知原因导致发送失败。 \r\n”); break; case TX_DS:

printf(“\r\n 主机端 接收到 从机端 的应答信号,发送成功! \r\n”);

break;

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16865

    浏览量

    349853
  • pcb
    pcb
    +关注

    关注

    4315

    文章

    22928

    浏览量

    395471
  • 寄存器
    +关注

    关注

    31

    文章

    5290

    浏览量

    119788
  • 无线通讯
    +关注

    关注

    5

    文章

    574

    浏览量

    39772
收藏 人收藏

    评论

    相关推荐

    NRF2410无线通讯模块原理,程序,驱动,源代码等详细资料

    NRF2410无线通讯模块原理,程序,源代码等详细资料 RF射频芯片nRF2401应用程序,控制器采用ATmega8芯片;制作nRF2401无线通讯
    发表于 06-27 09:47

    求助 nrf2401的应用

    本帖最后由 eehome 于 2013-1-5 10:05 编辑 l Mb/s数据率,7000个字节的数据通过无线通讯,刚看了nrf2401的模块好像可以用,但自己不会弄啊,跪求求大侠们帮帮忙啊,先谢谢了。本人qq464149261.
    发表于 09-26 10:58

    关于51单片机NRF2401与STM32的NRF2401之间的通讯问题

    我用51单片机NRF2401与STM32的NRF2401通讯,,51单片机的作为发送芯片;STM32的作为接收芯片,但是接收打开后很久才能接收到数据并且是乱码,求解答这是什么原因???
    发表于 07-20 11:59

    2.4G低功耗无线方案

    )+16M/3225/9PF/±10PPM(晶振)4. 2.4G有源卡方案:NRF24L01P(2.4G收发芯片)+AT2401C(射频放大器)+16M/3225/9PF/±10PPM
    发表于 07-11 14:00

    2.4g无线通讯技术问题

    最近做个项目需要用到无线通讯 技术,要实现点对多模式进行数据传输。由于传输距离100m以内,所有自己心里目前有三种方案:一,使用wifi模块;二,使用nrf模块;三,使用无线zigbe
    发表于 04-21 03:49

    nrf2401的msp430程序

    nrf2401的msp430程序
    发表于 04-11 09:59 172次下载
    <b class='flag-5'>nrf2401</b>的msp430程序

    基于nrf2401无线收发点菜器系统的设计与实现

    基于nrf2401 无线收发点菜器系统的设计与实现李玮 (山东省广播电视局昆嵛山转播台)摘要:介绍了一种利用无线数字传输芯片和单片机构成的点菜器系统,对系统的硬件电路和
    发表于 12-20 09:28 203次下载

    基于nRF2401的分布式测温系统设计

    利用温度传感器DS18B20 、AT89S51 单片机和nRF2401 收发芯片设计分布式无线温度测试系统。将温度传感器DS18B20 采集到的温度数据送入单片机中进行处理,通过nRF2401
    发表于 08-30 15:51 134次下载

    基于nRF2401的机械仪表无线通信的设计方案

    针对大型工程机械各类信号与驾驶操控室仪表异地显示的通信问题,提出了基于射频收发器nRF2401实现无线数据通信的设计方案,详细介绍了射频芯片nRF2401的工作原理及特点, 并给
    发表于 11-22 14:55 45次下载

    基于ATmega16和nRF2401无线射频收发系统设计

    基于ATmega16和nRF2401无线射频收发系统设计。
    发表于 01-25 10:28 17次下载

    基于nRF2401无线数据传输系统

    基于nRF2401无线数据传输系统,参考下。
    发表于 01-25 10:28 53次下载

    基于nrf2401无线收发点菜器系统的设计与实现

    基于nrf2401无线收发点菜器系统的设计与实现
    发表于 02-17 10:01 53次下载

    NRF2401中文数据手册

    2.4GHz射频收发芯片nRF2401及其应用。
    发表于 04-06 16:52 183次下载

    nRF2401无线模块的PCB图免费下载

    本文档的主要内容详细介绍的是nRF2401无线模块的PCB图免费下载。
    发表于 11-05 08:00 72次下载
    <b class='flag-5'>nRF2401</b><b class='flag-5'>无线</b>模块的PCB图免费下载

    2.4G无线通讯模块SI24R1

    电子发烧友网站提供《2.4G无线通讯模块SI24R1.zip》资料免费下载
    发表于 07-28 10:23 27次下载
    <b class='flag-5'>2.4G</b><b class='flag-5'>无线通讯</b>模块SI24R1