在读取GPIO引脚状态之前需要调用periph\u init()?

5个职位/0个新职位
最后一篇文章
夏季20100514
离线
最后一次见到:4年2个月前
上师
已加入:2014-12-30 05:01
在读取GPIO引脚状态之前需要调用periph\u init()?

嗨,伙计们。当启用扩展睡眠模式时,每次我想读取GPIO pin状态时,是否必须首先调用periph\u init()?

设备:
MT\u对话框
离线
最后一次见到:1周8小时前
工作人员
已加入:2015-06-08 11:34
嗨,summer,

嗨,summer,

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

谢谢你的对话

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

弗斯特,在另一篇文章中,似乎当DA14580被BLE计时器唤醒时,periph\u init已经被自动调用了。
第二,因为定期调用periph_init(例如广告间隔),是否意味着我不能始终正确读取pin状态?如果是这样的话,我应该怎么做来读取真正的pin状态而不是默认的?

MT\u对话框
离线
最后一次见到:1周8小时前
工作人员
已加入:2015-06-08 11:34
你好,20100514,

你好,20100514,

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

因为每次(从BLE事件中唤醒后)调用periph\u init()时,您的管脚都会再次初始化,在读取管脚的情况下,我想您始终可以正确读取管脚状态。

谢谢你的对话

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

谢谢你的详细解释。