嗨MT_dialog,
谢谢你的帮助!
这个话题是关于上一个话题的进一步问题:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
应用您提供的方法,通过为使用的引脚重新配置GPIO函数,在外围init()中。
当MPU处于睡眠状态时,引脚状态可以保持。
在我们的项目中,我们希望保留外设和gpio的所有设置,一旦它们被制作,而不是在每次MCU唤醒时的外围init()中。
这样,我们相信可以节省相当多的电池电量,因为我们的项目是关于一个可穿戴设备,电池是一个关键的问题。
所以能否提供一个有这个功能的SDK给我们?
设备:
嗨userYR,
正如我在你之前的文章中提到的,你正在失去外设的状态不是因为设备处于睡眠状态,而是因为设备处于唤醒状态,设备在睡眠模式下保持其引脚的状态,但是,当你醒来时,你将不得不重新配置你的引脚(应用你的引脚与特定的功能),所以外围init()函数被执行,如果你不“记住”应用程序已经改变的引脚的状态,然后引脚将配置在其默认状态。你应该“记住”引脚的状态,并在外围_init()函数中唤醒时应用正确的状态。还通过重新配置你的针在醒来前的状态,这是不会消耗任何额外的权力,没有额外的醒来为了配置外围设备,该设备将服务BLE醒来,只会运行periph_init()代码,没有额外的功耗。
由于MT_dialog
嗨MT_dialog,
是的,我知道引脚应该默认为初始状态时,MCU唤醒,如果没有做的重新配置在外围的init()。
但我不明白的是“谁初始化的?”当然,如果是MCU硬件做到了这一点,就什么也做不了了。
你说“失去国家…因为设备正在苏醒"
嗨userYR,
我很抱歉我不太明白这个问题,如果你在你的设备中使用任何GPIO,你应该在外围的init()函数中配置那些引脚,当设备睡觉hw能够保留针的状态(的寄存器不保留所以当睡觉和醒来寄存器将到他们的默认值,根据销在那一刻的状态(睡前)销将门闩状态睡觉之前)。当设备唤醒时,系统电源管理器将再次调用外围_init(),以便重新初始化pad后面的所有数字电路,以便在应用程序使用的值中设置GPIO寄存器,因此,在初始化时,你也应该应用配置和寄存器在设备进入睡眠前的状态。
由于MT_dialog
嗨MT_dialog,
“GPIO寄存器没有被保留”全部澄清!
非常感谢!