嗨,团队,
我正在从事ble_app_外围项目。默认睡眠模式在user_config.h文件中设置为ARCH_EXT_sleep_ON。我使用的gpio在periph_init()中的set_pad_function()中配置如下:
GPIO_配置引脚(GPIO_端口0,GPIO_引脚4,输出,PID_GPIO,真);
此外,此gpio的状态在代码中使用gpio_SetActive和gpio_SetInactive函数进行更改。
我们面临的问题是,每次设备从长时间睡眠中醒来时,gpio的当前状态都不会保留。通过每次使用函数将gpio配置为当前状态,解决了该问题
GPIO_在set_pad_函数()中配置引脚(GPIO_端口_0、GPIO_引脚_4、输出、PID_GPIO、当前_GPIO_状态)。
这是否是预期的行为,或者是否有其他方法使GPIO在延长睡眠期间保持其当前状态。
谢谢
Wisilica队
设备:
嗨,维西莉卡,
是的,580在睡眠模式下保持其状态,但一旦唤醒,periph_setup()将执行以配置管脚,因此管脚已设置但处于默认状态,解决方案是将管脚状态保持在fw中,并在periph_init()中相应地重新配置。
谢谢你的对话
你好
为什么每次芯片从睡眠中醒来时都需要进行外围初始化?删除此呼叫会有任何副作用吗?
谢谢
威斯利卡
嗨,维西莉卡,
在系统的LP_Handler()中调用periph_init(),是否有删除该函数的原因?在580中,状态被保留,而不是管脚的功能,因此,一旦您进入睡眠状态,状态将被保留,而不是配置,并且一旦您醒来,580将具有不带periph_init()的管脚的默认配置。
谢谢你的对话