nRF51822低功耗睡眠函数应用
生活随笔
收集整理的這篇文章主要介紹了
nRF51822低功耗睡眠函数应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下面是本人調試通過的nRF51822低功耗睡眠的軟件應用,當執行NRF_POWER->SYSTEMOFF = 1;CPU將停止運行,保留外設參數,本人實測睡眠模式下電路電流消耗10微安,當被GPIO的DETECT信號喚醒后,復位,軟件從main函數開始執行。whilie(1)下CPU消耗18毫安電流。不廢話了,上實例代碼
/*****************************************************/?? #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,在此感謝!
[cpp]?view plaincopy
轉自:http://www.openedv.com/posts/list/44983.htm,在此感謝!
總結
以上是生活随笔為你收集整理的nRF51822低功耗睡眠函数应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 例题精讲 | 08 排
- 下一篇: 桌面计算机用法,pointofix使用说