请问一下da14580休眠的历程是怎么样的,我的工程是在ble_app_peripheral的基础上的,然后进行了一休眠模式的配置,具体处下:
user_confog.h中修改:
const static sleep_state_t app_default_sleep_mode =ARCH_EXT_SLEEP_ON;
user_peripheral.c中修改:
void user_app_adv_start(void)
{
//安排下一个广告数据更新
app_add_data_update_timer_used = app_easy_timer(app_add_data_update_to,avd_data_update_timer_cb);//定时机60sec后停止广播
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_undirected_advertise_get_active();
//动态添加制造商特定数据
mnf_data_update();
app_add_ad_struct(cmd,&mnf_data,sizeof(struct mnf_specific_data_ad_structure));
//在广告期间设置延长睡眠
ARCH_SET_EXTEDDE_SLEEP();
app_easy_gap_undircated_advertise_start();
}
void user_app_connection(uint8_t connection_idx,struct gapc_connection_req_ind const * param)
{
if(app_env [connection_idx] .conidx!= gap_invalid_conidx)
{
user_gattc_exc_mtu_cmd(connection_idx);
app_connection_idx = connection_idx;
//停止广告数据更新计时器
app_easy_timer_cancel(app_add_data_update_timer_used);
//检查已建立连接的参数是否是首选的参数。
//如果没有,则计划连接参数更新请求。
if((param-> con_interval
(param-> con_latency!= user_connection_param_conf.latency)||
(param-> sup_to!= user_connection_param_conf.time_out))
{
//连接参数不是我们预期的
app_param_update_request_timer_used = app_easy_timer(app_param_update_request_to,param_update_request_timer_cb);
}
}
别的
{
//没有建立连接,重启广告
user_app_adv_start();
}
default_app_on_connection(connection_idx,param);
ARCH_SET_EXTEDDE_SLEEP();
}
void user_app_add_undirect_complete(UInt8_t status)//停止广播后调使用
{
//如果广告被取消,则更新广告数据并再次启动广告
if(status == gap_err_canceled)
{
// user_app_adv_start();
ARCH_BLE_EXT_WAKEUP_ON();//使能外部唤醒,定时果批发无效,睡眠后直到下载更新上电,将不再唤醒
}
}
da1458x_config_basic.h中修改
#define cfg_mem_map_ext_sleep.
#undef cfg_mem_map_deep_sleep.
运行程序烧写后,可以以确定程是正当行的,在断开蓝牙1分钟后,广播信号消失,是符合程序的。我会达到的目很的。,连接读写完毕后,断开蓝牙,1分钟后,蓝牙进入休眠,且且能用外研唤醒。
目前按上游的程度在广播信号消失,蓝牙并未进入设置的扩展模式。
请问还有条里里需要修改的吗,我是我理解的.sleepmode子子里的是深度休眠,其他设置好像我上面的设置别无区别,别无我在.app_on_system_powered = user_scan_sda_flag,是有加加数的,是没有影响影响
我好像知道问题在哪了,他进休眠前需要判断app_on_system_powered是null,我在这里有着放执行数。请问怎么在使用完完时尚,将该位置设置别为null呢?
嗨,
你的♥,我们会在内部内部讨论和您联系。
最好的祝福,
QIFAN.
好的,期待的回复。
实际测试中,我将app_on_system_powered恢复为null后,在user_app_adv_undirect_complete遇入中ARCH_SET_EXTEDDE_SLEEP(); ARCH_BLE_EXT_WAKEUP_ON();即可实现实现,最初的config.h里的休眠可以关心,在广播广播后再开开休眠可口。
唯一的问题就我是我的使用了app_on_system_powered里的数量,要进休眠就得恢复null,不知道怎么原理。休眠流程我大声明显了
还有没有答复吗
嗨,
在.app_on_ble_powered = user_scan_sda_flag over disures中是返回有返回到goto_sleep来到进入模式
最好的祝福,
QIFAN.
并没别,需要怎么做呢?在.app_on_ble_powered = user_scan_sda_flag加载哪些可以实现模式运完回归正式休眠模式,arch_goto_sleep(sleep_mode);在arch_main里奇的时候(app_asynch_proc()!= goto_sleep);判断的,是,是需要.app_on_ble_powered = null时尚返回goto_sleep;
嗨,
可在攻击的app_on_ble_powered eary里直接返回got got got got tooto_sleep,休眠过程是一个个个流程,goto_sleep〗是通行,而不是下面的那个。
最好的祝福,
QIFAN.
在user_scan_sda_flag里面直接返回goto_sleep?但在分数循环里,判断的是(app_asynch_trm()!= = goto_sleep); app_asynch_proc()!= goto_sleep;这两个,我需要去修改arch_main.care这两个码的内容吗,直接让他返回goto_sleep?