发 帖  
原厂入驻New
[问答] 有人需要nRF51822低功耗CPU睡眠软件应用的代码吗
152 NRF51822 cpu
分享
下面是本人调试通过的nRF51822低功耗睡眠的软件应用,当执行NRF_POWER->SYSTEMOFF = 1;CPU将停止运行,保留外设参数,本人实测睡眠模式下电路电流消耗10微安,当被GPIO的DETECT信号唤醒后,复位,软件从main函数开始执行。whilie(1)下CPU消耗18毫安电流。不废话了,上实例代码,若有不明,欢迎加企鹅2749746043讨论。<br />
<br />
/*****************************************************/<br />
#include <stdbool.h><br />
#include <stdint.h><br />
#include "nrf.h"<br />
#include "nrf_gpio.h"<br />
#include "boards.h"<br />
<br />
#define KeyPressFlag 0<br />
<br />
int main(void)<br />
{<br />
    <br />
    nrf_gpio_cfg_input(key_0, NRF_GPIO_PIN_NOPULL);// 配置按键BUTTON_0为输入<br />
    <br />
    // 配置BUTTON_1管脚为DETECT信号输出,该句很重要,是CPU被GPIO唤醒的必要条件<br />
    nrf_gpio_cfg_sense_input(key_1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW); <br />
<br />
    nrf_gpio_range_cfg_output(LED_START, LED_STOP);//配置LED指示灯管脚为输出<br />
<br />
    nrf_gpio_pin_set(LED_0); //点亮LED灯<br />
<br />
    // 睡眠保留RAM的参数<br />
    NRF_POWER->RAMON = POWER_RAMON_ONRAM0_RAM0On   << POWER_RAMON_ONRAM0_Pos<br />
                     | POWER_RAMON_ONRAM1_RAM1On   << POWER_RAMON_ONRAM1_Pos<br />
                     | POWER_RAMON_OFFRAM0_RAM0Off << POWER_RAMON_OFFRAM0_Pos<br />
                     | POWER_RAMON_OFFRAM1_RAM1Off << POWER_RAMON_OFFRAM1_Pos;<br />
    <br />
    while(1)<br />
    {     <br />
        // 如果BUTTON0 被按下,则熄灭LED灯让CPU进入睡眠<br />
        IF(nrf_gpio_pin_read(key_0) == KeyPressFlag)<br />
        {<br />
            nrf_gpio_pin_clear(LED_0);<br />
<br />
            //CPU进入睡眠模式,若有GPIO的DETECT信号唤,则CPU被唤醒而后复位从main函数开始执行。<br />
            NRF_POWER->SYSTEMOFF = 1;<br />
        }<br />
    }<br />
}<br />
0
2020-6-15 02:28:14   评论 分享淘帖 邀请回答

相关问题

18个回答
2020-6-15 11:28:15 评论

举报

写的不错。楼主有试过和nrf24l01应答通讯没?
2020-6-15 11:44:05 评论

举报

没有呢,感觉这种通信在产品开发上没啥实际有效的意义吧。
2020-6-15 12:01:45 评论

举报

请问系统的电源供电是什么方案?
2020-6-15 12:11:05 评论

举报

我是用1.5V干电池升压供电,片子是TI的TPS61097,电源转换效率95%,静态电流5uA,关断电流5nA。
2020-6-15 12:16:51 评论

举报

<br>用3V的电池&nbsp;外型也大不了多小,干嘛用1.5V的?
2020-6-15 12:25:59 评论

举报

1.5V的电池比较普及嘛。。。用户使用的时候,即便是在小卖部都可以买得到呀,一句话,方便。
2020-6-15 12:40:17 评论

举报

容量差不多的,ag和cr大小也差不多了
2020-6-15 13:00:11 评论

举报

楼主,我用了上面你的配置,但是功耗却是4mA...
2020-6-15 13:15:19 评论

举报

<br>你单位写错了吧&nbsp;4ua吧
2020-6-15 13:23:06 评论

举报

<br>请问功耗却是4mA...是怎么测量出来的?
2020-6-15 13:34:05 评论

举报

代理NORDIC蓝牙4.0芯片NRF51822
<br>联系人:刘工
<br>QQ:1330504646
<br>手机:13714153746
<br>NRF51822是一款为超低功耗无线应用(ULP&nbsp;wirelesss&nbsp;applications)打造的多协议单芯片解决方案。
<br>它整合了Nordic一流的无线传送器,同时支持Bluetooth(R)&nbsp;low&nbsp;energy&nbsp;和专用的2.4GHz协议栈。
<br>基本情况是:
<br>2.4GHZ多协议无线射频
<br>32位ARM&nbsp;Cortex&nbsp;M0&nbsp;处理器
<br>128位AES硬件加密处理器
<br>256kB&nbsp;flash&nbsp;/&nbsp;16kB&nbsp;RAM
<br>可编程外设接口PPI
<br>全功能数字接口:&nbsp;SPI&nbsp;/&nbsp;I2C&nbsp;/&nbsp;UART
<br>10位ADC
<br>可编程的输出功率:&nbsp;+4dBm&nbsp;to&nbsp;-20dBm
<br>应用开发和协议堆栈完全独立
<br>与NRF24L系列完全兼容
<br>与NRF51xxx系列管脚兼容
<br>全局独立电源管理
<br>工作电压范围(1.8&nbsp;V&nbsp;~&nbsp;3.6&nbsp;V)
2020-6-15 13:39:54 评论

举报

<br>sd_power_system_off()之后,除了外部IO(含重新上电)唤醒外,可以由单片机自己定期唤醒么?
2020-6-15 13:50:37 评论

举报

楼主有没有用软件唤醒过啊
2020-6-15 14:02:15 评论

举报

我也测出nrf51822的省电睡眠模式的功耗是4mA,请你后来解决了了吗?
2020-6-15 14:12:55 评论

举报

4mA  的话 估计你是JTAG没拔下来
我现在有个问题, 按键按下去休眠了, 可是抬起来又唤醒了。 我延时之后再休眠,它就直接重启了。 这个难道不是边沿触发唤醒而是电平高低?
2020-6-15 14:32:22 评论

举报

我现在有个问题, 按键按下去休眠了, 可是抬起来又唤醒了。 我延时之后再休眠,它就直接重启了。 这个难道不是边沿触发唤醒而是电平高低?
2020-6-15 14:44:00 评论

举报

不知道还有没有人看到,请问这个设置唤醒后ARM不丢失是怎么实现的还需要配置什么?我用楼主的代码实现了唤醒,但是ARM还是丢失的
2020-6-15 14:51:49 评论

举报

只有小组成员才能发言,加入小组>>

119个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

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