OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9200|回复: 5

NRF24L01低功耗设置-----每次发送完数据后断电进入standby1模式

[复制链接]

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2018-3-7
在线时间
33 小时
发表于 2018-5-24 15:55:08 | 显示全部楼层 |阅读模式
40金钱
想让NRF24L01在每发送完一次数据后断电,按照数据手册对nrf24l01.c文件中的相对应寄存器配置,//power downNRF24L01_Write_Reg(WRITE_REG + CONFIG, 0x00);这行配置了,发现电流没有改变,还是在90ma。
接着又试了下       
//power up=1,使ce=0进入standby 1模式
NRF24L01_CE=0;测试后电流仍然在90ma,
是我配置错误了吗?对照寄存器配置也没觉得错啊。还是代码放的位置不对啊?原子哥@正点原子求教
寄存器配置.png
图1寄存器配置地址

QQ图片20180524154349.png
图2低功耗的方式
QQ图片20180524154231.png

图3我的代码



最佳答案

查看完整内容[请看2#楼]

void NRF_LowPower_Mode(void) { NRF24L01_SPI_CE_ENABLE(); NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0c); //配置工作模式:掉电模式 NRF24L01_SPI_CE_DISABLE();/*CE拉高,进入接收模式*/ } 发完数据之后,执行NRF_LowPower_Mode,在下次发送之前,重新配置为发送模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2015-7-3
在线时间
55 小时
发表于 2018-5-24 15:55:09 | 显示全部楼层
void NRF_LowPower_Mode(void)
{
        NRF24L01_SPI_CE_ENABLE();       
        NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG, 0x0c);                                                                                  //配置工作模式:掉电模式
        NRF24L01_SPI_CE_DISABLE();/*CE拉高,进入接收模式*/       
}
发完数据之后,执行NRF_LowPower_Mode,在下次发送之前,重新配置为发送模式
回复

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-5-24 19:22:45 | 显示全部楼层
本帖最后由 哆啦A萌 于 2018-5-24 19:23 编辑

NRF24L01_CE = 0;
然后设置COFIG寄存器的0x02

回复

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2018-3-7
在线时间
33 小时
 楼主| 发表于 2018-5-25 16:40:00 | 显示全部楼层
哆啦A萌 发表于 2018-5-24 19:22
NRF24L01_CE = 0;
然后设置COFIG寄存器的0x02

void NRF24L01_TX_Mode(void)
{                       
          NRF24L01_CE=0;
    delay_us(10);       
          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);
          NRF24L01_Write_Reg(NRF_WRITE_REG+EN_AA,0x01);     
          NRF24L01_Write_Reg(NRF_WRITE_REG+EN_RXADDR,0x01);
          NRF24L01_Write_Reg(NRF_WRITE_REG+SETUP_RETR,0x1f);
         NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,0x6e);   
      NRF24L01_Write_Reg(NRF_WRITE_REG+RF_SETUP,0x0f);  
         NRF24L01_Write_Reg(NRF_WRITE_REG+CONFIG,0x4e);   
         NRF24L01_CE=1;
       
    delay_us(10);
        NRF24L01_CE=0;
         NRF24L01_Write_Reg(NRF_WRITE_REG + CONFIG, 0x02);   

}

您好,谢谢回复,按照您说的这样设置后,测的电流还是70ma,加不加这两行电流都没有变化,这正是疑惑的地方
回复

使用道具 举报

0

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-9-27
在线时间
15 小时
发表于 2018-10-24 09:55:21 | 显示全部楼层
最后是如何解决的呢?
回复

使用道具 举报

2

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-6-5
在线时间
8 小时
发表于 2019-5-31 10:14:13 | 显示全部楼层
程序明显有问题 前面都return了 后面都不执行 怎么进入低功耗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表