在读取GPIO引脚状态之前需要调用periph_init()?

5个职位/0个新职位
最后一篇帖子
夏季20100514
离线
最后一次见到:4年4个月前
大师
加入:2014-12-30 05:01
在读取GPIO引脚状态之前需要调用periph_init()?

大家好。启用扩展睡眠模式后,每次我想读取GPIO引脚状态时,是否必须首先调用periph_init()?

设备:
MT_对话
离线
最后一次见到:2个月6天前
工作人员
加入:2015-06-08 11:34
嗨summer,

嗨summer,

是的,每次唤醒后都应该调用Periphu init来初始化外围设备。问题是,如果调用periph_init,您的管脚将再次经历配置过程,因此您必须记住这一点。

谢谢你的对话

夏季20100514
离线
最后一次见到:4年4个月前
大师
加入:2014-12-30 05:01
首先,在另一篇帖子中

第一,在另一篇帖子中,当DA14580被BLE定时器唤醒时,periph_init似乎已经被自动调用。
第二,因为定期调用periph_init(例如广告间隔),这是否意味着我无法始终正确读取pin状态?如果是这种情况,我应该如何读取真实的pin状态而不是默认的pin状态?

MT_对话
离线
最后一次见到:2个月6天前
工作人员
加入:2015-06-08 11:34
你好summer20100514,

你好summer20100514,

当系统从BLE事件中唤醒时,WAKEUP_处理程序会自动调用periph_init(),如果系统从外部事件(外部中断)中唤醒,则必须从回调函数中调用periph_init(),以初始化外围设备。

因为每次(从BLE事件中唤醒后)调用periph_init()时,您的pin都会再次被初始化,在读取pin的情况下,我想您总能正确读取pin状态。

谢谢你的对话

夏季20100514
离线
最后一次见到:4年4个月前
大师
加入:2014-12-30 05:01
感谢您的详细介绍

谢谢你的详细解释。