GPIO状态未保留在延长睡眠中

4个员额/0个新员额
最后一篇文章
威斯利卡
离线
最后一次见到:1年3周前
加入:2015-03-17 08:16
GPIO状态未保留在延长睡眠中

嗨,团队,
我正在从事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队

设备:
MT_对话框
离线
最后一次见到:4个月3周前
工作人员
加入:2015-06-08 11:34
嗨,维西莉卡,

嗨,维西莉卡,

是的,580在睡眠模式下保持其状态,但一旦唤醒,periph_setup()将执行以配置管脚,因此管脚已设置但处于默认状态,解决方案是将管脚状态保持在fw中,并在periph_init()中相应地重新配置。

谢谢你的对话

威斯利卡
离线
最后一次见到:1年3周前
加入:2015-03-17 08:16
你好

你好

为什么每次芯片从睡眠中醒来时都需要进行外围初始化?删除此呼叫会有任何副作用吗?

谢谢
威斯利卡

MT_对话框
离线
最后一次见到:4个月3周前
工作人员
加入:2015-06-08 11:34
嗨,维西莉卡,

嗨,维西莉卡,

在系统的LP_Handler()中调用periph_init(),是否有删除该函数的原因?在580中,状态被保留,而不是管脚的功能,因此,一旦您进入睡眠状态,状态将被保留,而不是配置,并且一旦您醒来,580将具有不带periph_init()的管脚的默认配置。

谢谢你的对话