我最近做了一个小东东,
利用NRF24L01接收主机采集的数据,
然后根据数据情况输出声光报警,
这个声光报警器我想利用电池供电,
用的是某宝号称功耗最小的硬币般大小的C8T6核心板,
但工作电流也有30mA以上,
加上NRF24L01等,正常工作电流就有近50mA,
用3.7V的18650电池供电,感觉撑不了一天,
我想请教一下,
这个50mA的电流正常吗?
接收数据的频度差不多1分钟一次,
我需要让MCU进入休眠模式,
然后接收到数据后,中断唤醒吗?
如果让MCU进入休眠模式,
NRF24L01应该处于接收模式吧?那如何降低NRF24L01的功耗呢?
大家一般是如何做的呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
电流从46mA减少至17mA,
看起来这十多毫安,基本上是NRF24L01的接收电流,
暂时还没有进一步减少电流的方法。
1、初始化时打开电源管理的RCC时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
2、NRF24L01接收到数据并处理完成之后,进入STOP模式
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
3、NRF24L01再次接收到数据会产生外部中断,唤醒MCU
在中断服务程序开始处恢复系统时钟
使用的方法是调用系统时钟初始化程序SystemInit()
结果出现了莫名其妙的问题.
最后在网上找到了如下时钟恢复函数,才获得成功:
NRF24L01待机模式不能接收数据吗?这个需要研究下手册,或者实际测试一下。十几个mA的电流实在是有点高啊。像你这样一个系统,应该在几个mA是比较正常的。NRF24L01不太了解,需要你自己深入研究下了!
一周热门 更多>