极速赛车手机官网

STM32--SPI配置nrf24l01调试笔记

2019-07-11来源: eefocus关键字:STM32  SPI配置  nrf24l01

TX模式和RX模式

地址配置


//发送/接收地址一

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

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

//发送/接收地址二

极速赛车手机官网const u8 TX_ADDRESS1[TX_ADR_WIDTH]={0x35,0x43,0x10,0x10,0x01}; //发送地址

const u8 RX_ADDRESS1[RX_ADR_WIDTH]={0x35,0x43,0x10,0x10,0x01};


测试一

发送模块,发送模式配置成:发送地址一,接收地址二

void NRF24L01_TX_Mode(void)

{                                                        

    NRF24L01_CE=0;      

    NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//写TX节点地址 

    NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS1,RX_ADR_WIDTH); //设置TX节点地址,主要为了使能ACK      


    NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);     //使能通道0的自动应答    

    NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0的接收地址  

    NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次

    NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);       //设置RF通道为40

    NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

    NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e);    //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断

    NRF24L01_CE=1;//CE为高,10us后启动发送

}


接收模块,接收地址配置为:接收地址一

void NRF24L01_SPI3_RX_Mode(void)

{

    NRF24L01_SPI3_CE=0;   

极速赛车手机官网    NRF24L01_SPI3_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX0节点地址



极速赛车手机官网    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度   



    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);    //使能通道0-5的ACK自动应答    

    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0-5的接收地址    

    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RF_CH,40);          //设置RF通信频率          


    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0f);   //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式 

    NRF24L01_SPI3_CE = 1; //CE为高,进入接收模式 

}   


测试一结果:接收模块可以接收到,但是发送模块无法确认已经发送!

测试二:

发送模块,发送模式配置成:发送地址一,接收地址一和接收地址二


void NRF24L01_TX_Mode(void)

{                                                        

    NRF24L01_CE=0;      

    NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//发送消息的目的地址 


    NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH); //监听通道0,接收地址一  

    NRF24L01_Write_Buf(NRF_WRITE_REG+RX_ADDR_P1,(u8*)RX_ADDRESS1,RX_ADR_WIDTH);//监听通道1,接收地址二 


    NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x03);     //0x03>>>0011使能通道0~通道1的自动应答    

    NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x03); //0x03>>>0011使能通道0~通道1的接收地址  

    NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1a);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:10次

    NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40);       //设置RF通道为40

极速赛车手机官网    NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

    NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x0e);    //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式,开启所有中断

    NRF24L01_CE=1;//CE为高,10us后启动发送

}


接收模块,接收地址配置为:接收地址一

极速赛车手机官网void NRF24L01_SPI3_RX_Mode(void)

{

    NRF24L01_SPI3_CE=0;   

    NRF24L01_SPI3_Write_Buf(NRF_WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX0节点地址



    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度   



    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);    //使能通道0-5的ACK自动应答    

极速赛车手机官网    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01); //使能通道0-5的接收地址    

    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RF_CH,40);          //设置RF通信频率          


    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  //设置TX发射参数,0db增益,2Mbps,低噪声增益开启   

    NRF24L01_SPI3_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0f);   //配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式 

    NRF24L01_SPI3_CE = 1; //CE为高,进入接收模式 

}   


关键字:STM32  SPI配置  nrf24l01

编辑:什么鱼 引用地址:http://news.1900222.com/mcu/ic467458.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 SPI通信协议总结
下一篇:极速赛车手机官网从零开始一起学stm32(十二)---SPI协议

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32内存管理分配

bss段:   bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。  bss是英文Block Started by Symbol的简称。  bss段属于静态内存分配。   data段:  数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。  数据段属于静态内存分配。   text段:  代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。  这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读(某些架构也允许代码段为可写
发表于 2019-08-24

STM32端口配置

的。5、推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。6、开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。7、复用输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配置成复用功能输出模式(推挽或开漏)。在STM32中选用IO模式,下面是参考网上的总结一下。(1)GPIO_Mode_AIN 模拟输入---应用ADC模拟输入,或者低功耗下省电(2)GPIO_Mode_IN_FLOATING 浮空输入
发表于 2019-08-24
STM32端口配置

STM32按键的短按/长按/双击

上一篇文章已经写好了定时器,并且实现了按键长按。现在狭隘的用一下:https://mp.weixin.qq.com/s?__biz=MzUyOTM0NDkyMA==&mid=2247484014&idx=1&sn=b07bde8a1d5b15467b2c80dfd7ae3547&chksm=fa633299cd14bb8f8e9334282059930bafabf44dfcf502b0a39b7f30326268f8574acc0b0ccf&mpshare=1&scene=23&srcid=0606fxjOEkyOf9zu21GHV78G#rd//⑥外部中断 2 服务程序
发表于 2019-08-24

STM32按键长短按:超强移植性,回调函数按键处理机制

松开是高电平。 1.3 软件设计1.构造按键参数结构体typedef void (*keyCallBackFuction)(void);  //定义回调函数指针__packed typedef struct{    uint8_t          keyNum;          //按键编号    uint32_t         keyRccPeriph;    //按键时钟   
发表于 2019-08-24

stm32中按键长短按实现方法

主函数中扫描该函数即可,需要注意按键按下时程序会停留在该函数中,知道松手或时间到0.8s,大于0.8秒为长按,小于为短按,可以自己根据需要修改,初始化函数因板子而异,这里就不列出来了u8 KEY_N; //在头文件中声明一下外部变量,用于主函数中判断哪个按键按下u8 KEY_Scan(void) //返回值temp代表按键按下的时间(=temp*10 MS){ static u8 flag=1; u8 temp=0; if(flag==1) {   if(KEY1_IN==0) //下面四个按键相似操作 { flag=0; while(KEY1_IN==0&&temp<85
发表于 2019-08-24

stm32中非阻塞式多按键状态检测函数

,会返回一个长按状态之后还会有个短按状态。在检测函数上,我暂时还没有想到解决方法,不过可以在按键处理时,加上上个状态位一起判断即可。具体代码如下:void   key_handle(){     static uint32_t key_press_time=0;      static uint32_t key_laststate ;         uint8_t key_nowstate ;     uint8_t handle_flag=0; 
发表于 2019-08-24
stm32中非阻塞式多按键状态检测函数

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 1900222.com, Inc. All rights reserved
极速赛车手机官网 极速赛车APP下载 极速赛车APP下载 极速赛车手机版下载 极速赛车APP 极速赛车手机版下载 极速赛车手机官网 极速赛车APP下载 极速赛车双面盘 极速赛车APP