嗨对话框
在演示项目接近 - > eporter_fh.i发现唤醒定时器中断回调函数,我有一些问题才能咨询。
void app_button_press_cb(void)
{
......
if(getBits16(sys_stat_reg,per_is_down))
periph_init();//为什么它在这里进行外围初始化?如果我删除该功能会发生什么?
if(app_ble_ext_wakeup_get())
{
#if(ext_sleep_enabled)
app_set_extended_sleep();
#elif(deep_sleep_enabled)
app_set_deep_sleep();
#别的
app_disable_sleep();
#万一
setbits32(gp_control_reg,ble_wakeup_req,1);
app_ble_ext_wakeup_off();
ke_msg_send_basic(app_wakeup_msg,task_app,null);
}
app_button_enable();//即使在其他地方,我也需要再次启用按钮。
}
嗨sk,
在睡眠模式下,外围块断电。在唤醒时,需要再次跨导外围设备(例如,需要恢复SPI或UART功能)。
在回拨例程中再次启用唤醒按钮还可以在设备连接时在睡眠模式下启用异步唤醒。
布尔
对话框蓝牙智能团队
嗨ak_dialog
我得到了它,它对我来说是蹒跚。
非常感谢你。
@ak_dialog,嗨,我有一个问题,据我所知,每次BLE唤醒时,Periph_init()都被称为周期性。所以何时在app_button_press_cb中调用periph_init()?是因为它的事实是,当设备连接时,广告已停止,因此Periph_Init()未调用周期性?
嗨Summer20100514,
调用Periph_init()才能每次执行DA必须执行某些内容时初始化外设,无论是连接间隔还是广告间隔(当没有外部中断时,从BLE_WAKEUP_HANDLER调用PERIPH_INIT时)。在外部唤醒事件的情况下,应首先调用回调函数,这就是为什么要在按钮中调用periph_init()。
谢谢mt_dialog.
好的我明白了。所以需要调用periph_init()当系统被BLE定时器唤醒时要做什么?
嗨Summer20100514,
当系统通过BLE定时器唤醒时,调用wakeup_handler,并且在唤醒中,也称为periph_init()函数。你不必自己称之为它被ISR调用。
谢谢mt_dialog.
谢谢你。