大家好。启用扩展睡眠模式后,每次我想读取GPIO引脚状态时,是否必须首先调用periph_init()?
嗨summer,
是的,每次唤醒后都应该调用Periphu init来初始化外围设备。问题是,如果调用periph_init,您的管脚将再次经历配置过程,因此您必须记住这一点。
谢谢你的对话
第一,在另一篇帖子中,当DA14580被BLE定时器唤醒时,periph_init似乎已经被自动调用。第二,因为定期调用periph_init(例如广告间隔),这是否意味着我无法始终正确读取pin状态?如果是这种情况,我应该如何读取真实的pin状态而不是默认的pin状态?
你好summer20100514,
当系统从BLE事件中唤醒时,WAKEUP_处理程序会自动调用periph_init(),如果系统从外部事件(外部中断)中唤醒,则必须从回调函数中调用periph_init(),以初始化外围设备。
因为每次(从BLE事件中唤醒后)调用periph_init()时,您的pin都会再次被初始化,在读取pin的情况下,我想您总能正确读取pin状态。
谢谢你的详细解释。
嗨summer,
是的,每次唤醒后都应该调用Periphu init来初始化外围设备。问题是,如果调用periph_init,您的管脚将再次经历配置过程,因此您必须记住这一点。
谢谢你的对话
第一,在另一篇帖子中,当DA14580被BLE定时器唤醒时,periph_init似乎已经被自动调用。
第二,因为定期调用periph_init(例如广告间隔),这是否意味着我无法始终正确读取pin状态?如果是这种情况,我应该如何读取真实的pin状态而不是默认的pin状态?
你好summer20100514,
当系统从BLE事件中唤醒时,WAKEUP_处理程序会自动调用periph_init(),如果系统从外部事件(外部中断)中唤醒,则必须从回调函数中调用periph_init(),以初始化外围设备。
因为每次(从BLE事件中唤醒后)调用periph_init()时,您的pin都会再次被初始化,在读取pin的情况下,我想您总能正确读取pin状态。
谢谢你的对话
谢谢你的详细解释。