Topic

FAQ
Login Register
SIG_MESH_Release_2.6.1 GPIO唤醒问题
Jan 21, 2019 09:19

/

A

/A
在使用如下代码初始化完芯片后,设备无法进入休眠,请问问题的原因是什么?
void mesh_switch_init()
{
rc_mag.rc_start_tick = clock_time();
mesh_tid.tx[0] = analog_read(REGA_TID);
////////// set up wakeup source: driver pin of keyboard //////////
u32 pin[] = KB_DRIVE_PINS;
//#if (0 == DEEP_SLEEP_EN) //suspend
for (int i=0; i<sizeof (pin)/sizeof(u32); i++)
{
//cpu_set_gpio_wakeup (pin[i], 0, 1);
gpio_set_wakeup (pin[i], 1, 1); // level : 1 (high); 0 (low)
}
gpio_core_wakeup_enable_all (1);
//#else //deep sleep
for (int i=0; i<sizeof (pin)/sizeof(u32); i++)
{
cpu_set_gpio_wakeup (pin[i], 1, 1); // level : 1 (high); 0 (low)
}
//#endif
rf_link_light_event_callback(LGT_CMD_SWITCH_POWERON);
}

休眠函数
int go_sleep()
{

cpu_sleep_wakeup(0, PM_WAKEUP_PAD | PM_WAKEUP_TIMER, clock_time() + 100 * CLOCK_SYS_CLOCK_10MS);
return 0;
}
1 replies
TL_Jerry Jan 24, 2019 14:26
0
/A
见上一问题回答,请详阅BLE handbook 对应函数功能说明。