6个职位/ 0个新职位
最后发表
fxishui
离线
最后看到:3年11个月前
加入:2016-04-12 13:27
用sdk5.0.4睡眠例程的深睡眠问题

1,用sdk5.0.4睡眠例程为基础创建的的工程,在扩展睡眠模式下,调式模式,程序烧写到otp,一切都正常,
2,当换到深睡眠模式,修改配置如下:

# undef CFG_MEM_MAP_EXT_SLEEP
#定义CFG_MEM_MAP_DEEP_SLEEP

const static sleep_state_t app_default_sleep_mode = ARCH_DEEP_SLEEP_ON;
还有就是把所有用到arch_set_extended_sleep()地方换为arch_set_deep_sleep ();

问题:
1,程序烧写到otp后,无法进入睡眠
2,我的广播设备名为固定的名字动态的加上mac地址;如对话框80 eaca000005; mac烧写在otpHeader里面的,第一轮广播的时候名字没有问题,但在第二轮广播后名字里面的mac部分就没有加上,我的名字逻辑部分添加在app.c里面的静态结构gapm_start_advertise_cmd * app_easy_gap_undirected_advertise_start_create_msg (void)这个函数里面的。
请问这是什么原因,怎么解决呢,谢谢!

设备:
Qinjiny_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2016-11-01 05:47
1.你的方法应该没有问题

1.你的方法应该没有问题,是不是在完成测试烧录OTP之前忘记把CFG_DEVELOPMENT_DEBUG去定义了?如果CFG_DEVELOPMENT_DEBUG还是定义过的话设备是无法进入深度睡眠的,因为

/* - SysRAM在深度睡眠模式下不关机。允许开发者使用Deep Sleep运行应用程序雷竞技安卓下载

2.不清楚你具体怎么做的名字逻辑,不过静态结构gapm_start_advertise_cmd * app_easy_gap_undirected_advertise_start_create_msg (void)都是从NVDS_TAG_DVICE_NAME里面拿设备名字的,可不可以试着在NVDS_TAG_DEVICE_NAME被调用之前把你的名字+地址写到NVDS_TAG_DEVICE_NAME里面吗?

fxishui
离线
最后看到:3年11个月前
加入:2016-04-12 13:27
您好,CFG_DEVELOPMENT_DEBUG

您好,CFG_DEVELOPMENT_DEBUG是去定义了的。
我判断可能是这个函数无效user_app_adv_undirect_complete (uint8_t状态)里面的问题

如果sdk的睡眠例程里面这个函数这样写就睡眠不了
uint8_t advtimes = 0;
空白user_app_adv_undirect_complete (uint8_t状态)

if (status == GAP_ERR_CANCELED) / /取消取消

advtimes + +;
如果(advtimes > = 2)

advtimes = 0;
arch_ble_ext_wakeup_on ();
app_button_enable ();

其他的
user_app_adv_start ();

不知道这是什么情况?

Qinjiny_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:2016-11-01 05:47
应该是末尾那个user_app_adv_start (

应该是末尾那个user_app_adv_start()函数的问题,这个函数除了开始广播之外还做了其他事情,计划下一次的广播内容更新,重新准备广播内容,动态更新自定义生产商内容,设置deepsleep模式等等,你把它加在这里不太合适。

这个程序默认是广播10秒后停止广播,期间默认就是深度睡眠,只有在连接到设备的时候才会改成延长睡眠,修改睡眠模式的话只去关心那部分应该就行了。

你修改上面这个回电函数的目的应该是睡眠之前多广播几遍,其实可以直接修改APP_ADV_DATA_UPDATE_TO这个参量来改变10秒默认的时间来达到,这个函数最好保持原样。

我觉得你可以再看看嗯- b - 050文档的8.50部分开始,详细了解一下这个例程

张树龙
离线
最后看到:3年7个月前
加入:2017-08-15 43分
哪儿可以下载到嗯- b - 050文档呢

哪儿可以下载到嗯- b - 050文档呢

Jelphi
离线
最后看到:7个月2周以前
工作人员
加入:2015-09-10 12:07
网上就有

网上就有