大家好,
我正在研究BLE_APP_PERITELAL项目。默认休眠模式设置为user_config.h文件中的Arch_ext_sleep_on。我正在使用一个gpio,它在periph_init()中的set_pad_function()中配置如下:
gpio_configurepin(gpio_port_0,gpio_pin_4,输出,pid_gpio,true);
此外,使用GPIO_SetActive和GPIO_SetInactive函数,该GPIO的状态在代码中变化。
我们面临的问题是,每次设备从延长睡眠中唤醒时都不会保留GPIO的当前状态。通过使用该函数将GPIO配置为当前状态来解决问题
gpio_configurepin(gpio_port_0,gpio_pin_4,输出,pid_gpio,present_gpio_state)在set_pad_function()中。
这是预期的行为还是有没有其他方法,使GPIO在延长睡眠期间保持当前状态。
谢谢,
队怀士队
设备:

嗨wisillica,
是的,580在睡眠模式下保留其状态,但一旦它唤醒Periph_setup()执行以配置引脚,所以它们被设置为默认状态,即将到来保持PIN在您的FW中的状态并相应地将其重新配置为Periph_init()。
谢谢mt_dialog.
你好,
为什么每次芯片从睡眠唤醒时都需要做一个periph_init?删除此呼叫将有任何副作用吗?
谢谢,
Wisilica.
嗨Wisilica,
在系统的LP_Handler()中调用Periph_init(),有没有理由删除该功能?在580中,状态保留而不是引脚的功能,所以一旦您入睡状态,状态将保留但不是配置,一旦唤醒580,580就会有默认配置的销钉periph_init()。
谢谢mt_dialog.