设备使用主从例程multiCentPeri开发,主机Central功能部分耗电极大,有什么办法可修改降低功耗,总耗电8ma左右,主机部分达到了7.9ma以上
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
设备使用主从例程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);