大家好,
我正在研究BLE_APP_PERIPHERAL项目。默认睡眠模式设置为user_config.h文件中的Arch_ext_sleep_on。我正在使用gpio,该gpio在periph_init()中的set_pad_function()中的set_pad_function():
gpio_configurepin(gpio_port_0,gpio_pin_4,output,pid_gpio,true);
同样,使用GPIO_SETACTIVE和GPIO_SETINACTIVE函数在代码中这种GPIO的状态在代码中有所不同。
我们面临的问题是,每次设备从延长的睡眠中醒来时,GPIO的当前状态都不会保留。该问题是通过每次使用函数将GPIO配置为当前状态来解决的
gpio_configurepin(gpio_port_0,gpio_pin_4,output,pid_gpio,present_gpio_state)in set_pad_function()。
这是预期的行为,还是有其他方法可以使GPIO在延长睡眠期间保持其当前状态。
谢谢,
Wisilica团队
设备:
嗨,威斯利卡,
是的,580在睡眠模式下保留其状态,但是一旦醒来,periph_setup()执行以配置引脚,因此设置了它们,但在其默认状态下,解决方案就是保持销钉的解决方案。在您的FW中陈述并相应地在Periph_init()中重新配置它。
谢谢mt_dialog
你好,
为什么每次芯片从睡眠中醒来时都需要做一个periph_init?删除此电话会有任何副作用吗?
谢谢,
Wisilica
嗨,Wisilica,
PERIPH_INIT()在系统的LP_HANDLER()中调用,是否有原因删除该函数?在580中,状态被保留,而不是PIN的功能,因此,一旦您入睡,状态就会保留,而不是配置,并且一旦您唤醒,580就会具有无需销钉的默认配置periph_init()。
谢谢mt_dialog