首页 > 编程知识 正文

nrf52832功耗测试,nrf51822最小系统

时间:2023-05-04 03:16:43 阅读:263949 作者:2252

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

[cpp]  view plain  copy /*****************************************************/   #include <stdbool.h>   #include <stdint.h>   #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://www.openedv.com/posts/list/44983.htm,在此感谢!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。