设备使用主从例程功耗

设备使用主从例程multiCentPeri开发,主机Central功能部分耗电极大,有什么办法可修改降低功耗,总耗电8ma左右,主机部分达到了7.9ma以上

在主机例程中,主机是一直在扫描的,所以功耗会比较大,主机的低功耗实现,一般有这两种方法:

1.主机不需要一直扫描的场景,根据自己的需要去调用扫描函数(如按一次按键扫描几秒钟):

  GAPRole_CentralStartDiscovery(DEFAULT_DISCOVERY_MODE,
                                          DEFAULT_DISCOVERY_ACTIVE_SCAN,
                                          DEFAULT_DISCOVERY_WHITE_LIST);

初始化时可通过此函数设置单次扫描时长,默认例程是1.5s:

GAP_SetParamValue(TGAP_DISC_SCAN, DEFAULT_SCAN_DURATION);

例程中若没有扫描到目标设备会再开一次扫描,连接失败或者断开连接也会开启扫描,如果不需要这样的逻辑,可以将对应的开启扫描函数屏蔽。

2.如果需要一直扫描,在初始化时可以设置扫描间隔和扫描窗口,默认例程中扫描间隔和扫描窗口是均是默认值10ms,导致没有时间去休眠,可以将扫描窗口设置的比扫描间隔小,这样就有时间休眠从而降低功耗,方法一中也可以用这种方法进一步降低功耗。

    GAP_SetParamValue(TGAP_DISC_SCAN_INT, 30);
    GAP_SetParamValue(TGAP_DISC_SCAN_WIND, 10);

只有登录才能回复,可以选择微信账号登录