System OFF是最低功耗模式,在该模式下,系统的内核和所有在运行的任务都会停止,也就是说时钟也停止,相当于关机状态。
可以直接控制POWER相关的寄存器使系统进入System OFF模式,也可以通过API函数,大家可以参考nrf_pwr_mgt例子中的方式。系统进入System OFF后,可以通过以下方式进行唤醒:
1、GPIO信号
2、LPCOMP模块
3、NFC信号
4、复位
可以在进入System OFF之前保存RAM信息,涉及的寄存器主要是这些
注意:如果从System OFF模式中唤醒,程序会复位
很多人发现已经进入System OFF模式后,功耗还是很大,罪魁祸首就是GPIO的状态
大家看资料中说的
也就是说,虽然系统进入了System OFF模式,但是GPIO还是保留了之前的状态,包括GPIO的输入/输出、I2C总线、SPI总线等等,所有GPIO都需要释放才可以,使用nrf_gpio_cfg_default(pin_number)可以释放GPIO,同时,如果有I2C或者SPI等其他总线外设,也要释放掉。
就这样,完全的低功耗就实现了