蓝牙BLE主机Central讲解二(Observer扫描讲解)

前言:

Observer比Central仅少了建立连接的功能,其他均为一样。

以下针对作为主机时常用参数进行讲解,即在未连接时扫描的参数:扫描时长扫描间隔扫描窗口

修改这些参数可以有效的降低功耗。

参数讲解:

TGAP_DISC_SCAN_INT 是扫描间隔(默认16,单位0.625ms);

TGAP_DISC_SCAN_WIND 是扫描窗口(默认16,单位0.625ms);

TGAP_DISC_SCAN是扫描时长(默认16384,单位0.625ms)。主机扫描时达到扫描时长后会停止扫描。Observer和Central在达到扫描时长后又开启了扫描,所以表现一直都在扫描状态。

DEFAULT_MAX_SCAN_RES是最大扫描相应数量。

扫描时长已提供接口进行修改,如设置为100ms,同时扫描数量配置为20。则在100ms内最多可扫描20个设备。同时进行了过滤,所以搜索到的MAC地址是不相同的。

扫描间隔和扫描窗口使用默认的即可,不需要修改。

理论配置:扫描时长 > 扫描间隔 > 扫描窗口。

实例:

void Observer_Init(){
    ......
    GAP_SetParamValue(TGAP_DISC_SCAN, 800);        //配置扫描时长为500ms
    GAP_SetParamValue(TGAP_DISC_SCAN_INT, 400);    //配置扫描间隔为250ms
    GAP_SetParamValue(TGAP_DISC_SCAN_WIND, 20);    //配置扫描窗口为12.5ms
}

如上配置,则有效扫描时长为12.5ms,并且会扫描2次,扫描完成即停止。

开始扫描:GAPRole_CentralStartDiscovery

停止扫描:GAPRole_CentralCancelDiscovery

附件:

主机通过按键开始/停止扫描

sys/Central_停止扫描.zip at main · SweeetTeea/sys (github.com)

posted @ 2023-09-05 17:57  SweetTea_lllpc  阅读(672)  评论(0编辑  收藏  举报