你好,
当我试图改变睡眠模式的钩子时,我在我的include链中遇到了一个错误。
正如在睡眠模式手册中所描述的,我的中断设置了一个标志(event1_flag),我们在钩子#2中检查它,如果它设置了另一个标志(event1_flag_sync),它在钩子#1中检查。
两个标志都在app_ourproject_project .h中声明(第二个标志在保留内存中使用__RETAINED)。
当我们想要包含app_ourproject_project .h时,我们会在include链中得到一个错误,声明:
error in include chain (gap.h): using未声明的标识符'SMPM_ADDR_TYPE_STATIC' "
我们应该把国旗放在别的地方吗?
什么好主意吗?

你好,
你们是在应用程序中使用扩展睡眠模式还是深度睡眠模式?
如果在钩子#2中设置了指示应用程序进入休眠状态的标志,钩子#1将调用这些函数
“app_set_deep_sleep()”和“app_ble_ext_wakeup_on ()
所以深度睡眠和直到中断发生的睡眠特征。
你好,
编译错误在我看来很奇怪。SMPM_ADDR_TYPE_STATIC似乎与您正在做的事情无关。
可以共享钩子#1和钩子#2中的代码吗?
我们绕过了这个问题,为gap.h中的变量提供了smpm.h中设置的变量的精确值,而不是将它们设置为变量本身。
走读生bool button_Pressed_Sync_Flag;
走读生bool ButtonFlag;
外面的空白app_adv_stop ();
外面的空白app_adv_start ();
extern int计数器;
走读生bool changedIn2;
钩# 1
静态内联bool app_asynch_trm(void)
{
Bool ret = false;
如果(changedIn2)
{
如果(button_Pressed_Sync_Flag)
{/ / naar sleepmode
app_adv_stop ();
app_set_deep_sleep ();
/ /钉functies
app_ble_ext_wakeup_on ();
/ /拉斯
button_Pressed_Sync_Flag = false;
/ / app_adv_stop ();
}
其他的
{//uit sleepmode willen gaan
app_ble_ext_wakeup_off ();
/ /钉functies
app_adv_start ();
app_disable_sleep ();
}
changedIn2 = false;
ret = true;
}
返回受潮湿腐烂;
}
钩# 2
静态内联bool app_asynch_proc(void)
{
Bool ret = false;
如果(ButtonFlag)
{
计数器+ +;
如果计数器% 2)
{
//gedrukt, maar false, dus zet hem in sleepmode
button_Pressed_Sync_Flag = true;
/ / app_adv_stop ();
changedIn2 = true;
}
其他的
{
button_Pressed_Sync_Flag = false;
/ / app_adv_start ();
changedIn2 = true;
}
ret = true;
ButtonFlag = false;
}
返回受潮湿腐烂;
}
ButtonFlag, Button_Pressed_Sync_Flag, changed2和counter都被保留(在我们的项目文件app_filename_proj中)。