博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nRF51822低功耗睡眠函数应用
阅读量:4046 次
发布时间:2019-05-24

本文共 1254 字,大约阅读时间需要 4 分钟。

通过的nRF51822低功耗睡眠的软件应用,当执行NRF_POWER->SYSTEMOFF = 1;CPU将停止运行,保留外设参数,睡眠模式下电路电流消耗10微安,当被GPIO的DETECT信号唤醒后,复位,软件从main函数开始执行。whilie(1)下CPU消耗18毫安电流。

/*****************************************************/#include 
#include
#include "nrf.h"#include "nrf_gpio.h"#include "boards.h" #define KeyPressFlag 0 int main(void){ nrf_gpio_cfg_input(key_0, NRF_GPIO_PIN_NOPULL);// 配置按键BUTTON_0为输入 // 配置BUTTON_1管脚为DETECT信号输出,该句很重要,是CPU被GPIO唤醒的必要条件 nrf_gpio_cfg_sense_input(key_1, NRF_GPIO_PIN_NOPULL, NRF_GPIO_PIN_SENSE_LOW); nrf_gpio_range_cfg_output(LED_START, LED_STOP);//配置LED指示灯管脚为输出 nrf_gpio_pin_set(LED_0); //点亮LED灯 // 睡眠保留RAM的参数 NRF_POWER->RAMON = POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos | POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos | POWER_RAMON_OFFRAM0_RAM0Off << POWER_RAMON_OFFRAM0_Pos | POWER_RAMON_OFFRAM1_RAM1Off << POWER_RAMON_OFFRAM1_Pos; while(1) { // 如果BUTTON0 被按下,则熄灭LED灯让CPU进入睡眠 if(nrf_gpio_pin_read(key_0) == KeyPressFlag) { nrf_gpio_pin_clear(LED_0); //CPU进入睡眠模式,若有GPIO的DETECT信号唤,则CPU被唤醒而后复位从main函数开始执行。 NRF_POWER->SYSTEMOFF = 1; } }}

 

转载地址:http://rvgdi.baihongyu.com/

你可能感兴趣的文章
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>
JS牛客网编译环境的使用
查看>>
9、VUE面经
查看>>
关于进制转换的具体实现代码
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>
Oracle 异机恢复
查看>>
Oracle 12C DG 搭建(RAC-RAC/RAC-单机)
查看>>
Truncate 表之恢复
查看>>
Oracle DG failover 后恢复
查看>>
mysql 主从同步配置
查看>>