蓝牙扫描请求和扫描响应使用实例---基于silicon labs 的EFR32BG22 Series

本文介绍了如何在Silicon Labs的EFR32BG22系列设备中实现蓝牙的扫描请求和扫描响应功能。内容包括扫描请求的开启、扫描响应的设置,以及关键API的说明,提供了代码实现的指导,帮助开发者理解主动扫描和被动扫描的工作方式。
摘要由CSDN通过智能技术生成

大家好:
一、概念
关于蓝牙的扫描请求和扫描响应功能,相信网上有很多介绍,在 此不作赘述,动动小手百度下即可,最主要的要理解:
扫描请求:由链路层处于扫描态的设备发送,链路层处于广播态的 设备接收。
扫描响应:由链路层处于广播态的设备发送,链路层处于扫描态的设备接收。
额外需了解,扫描分为主动扫描和被动扫描。主动扫描发送扫描请求给处于广播态的设备,并通过处于广播态的设备返回的扫描响应获取额外的数据。而被动扫描仅仅接收广播报文,不会发送扫描请求。
二、关键API 说明
详细的API函数或数据结构体可以参考官方文档.
1.扫描请求
/Reports any scan request received in advertising mode if the scan request notification is enabled/
//首先使能 request notification
sl_bt_advertiser_set_report_scan_request(advertising_set_handle,1);
广播端使能request notification后,只要扫描端扫描到此广播就会产生如下事件id: sl_bt_evt_advertiser_scan_request_id, 在此事件id下可以处理数据了.数据结构体
struct sl_bt_evt_advertiser_scan_request_s,具体查看官方文档.
2.扫描响应
/Reports an advertising or scan response packet that is received by the device’s radio while in scanning mode./
//使能active mode
sl_bt_scanner_set_mode(gap_1m_phy,1);//active mode is enabled
/产生事件id
sl_bt_evt_scanner_scan_report_id
可以处理的数结构体
struct sl_bt_evt_scanner_scan_report_s 具体查看官方文档.
三、代码实现
基于Simplicity Studio V5 创建一个bluetooth empty 工程,使用如下代码替代app.c

***************************************************************************//**
 * @file
 * @brief Core application logic.
 *******************************************************************************
 * # License
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Livy++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值