【经验】EFR32无线通信模块AN109——蓝牙BLE(主设备扫描)
EFR32标准模块,是世强独立研发,供用户学习、使用的射频模块。这个模块搭载SILICON LABS 多频段多协议的EFR32MG系列无线SOC芯片EFR32MG12P433F1024GM48,7*7mm QFN48封装,1MB Flash,256KB RAM,集成PA和巴伦,最大支持20dBm输出功率。支持Sub-GHz 和 2.4GHZ。支Zigbee,Thread,BLE 4.2和BT5.0以及蓝牙 MESH,以及私有协议。广泛用于智能门锁,门禁系统,照明系统,智能家居等领域。
我们在开发蓝牙产品的时候,作为master主设备,执行的蓝牙操作有设备扫描,蓝牙连接建立,发现服务,发现特征字,数据通信,连接断开等一系列的操作,本文将通过代码操作演示,详细说明Silicon Labs蓝牙SoC作为master主设备的时候,如何扫描蓝牙从设备。本文使用的蓝牙SDK版本是2.13.1.0. 搭配EFR32BG21系列评估板,如果有EFR32标准模块或者其他型号的蓝牙评估板也是同样的操作。
修改app.c文件,在 case gecko_evt_system_boot_id:下面先关闭广播才能开启扫描,
//gecko_cmd_le_gap_set_advertise_timing(0, 160, 160, 0, 0);
/* Start general advertising and enable connections. */
//gecko_cmd_le_gap_start_advertising(0, le_gap_general_discoverable, le_gap_connectable_scannable);
然后gecko_cmd_le_gap_start_discovery开始扫描从设备,参数详见API描述文档,下方也列出了参数的明细:
case gecko_evt_system_boot_id:
/* Start discovery, use 1Mbps PHY,le_gap_discover_generic to Discover limited and generic discoverable devices
* scanning_phy: le_gap_phy_1m = 0x1, le_gap_phy_2m = 0x2,le_gap_phy_coded = 0x4
* mode: le_gap_discover_limited = 0x0, le_gap_discover_generic = 0x1, le_gap_discover_observation = 0x2 */
gecko_cmd_le_gap_start_discovery(le_gap_phy_1m,le_gap_discover_generic);
break;
开始扫描之后,如果扫描到了从设备,就会有gecko_evt_le_gap_scan_response_id事件返回。我们添加如下处理代码,获取扫描回来的设备信息和参数。如果周围有很多的蓝牙设备广播,都会扫描回来。这时候,我们也可以添加一些筛选条件,找到我们期望的设备,例如通过比较蓝牙设备地址,比较蓝牙设备名称等等办法。我们先举例通过比较蓝牙设备地址的方法找打期望的蓝牙设备,例如一台蓝牙设备,其地址为:0xFA,0x34,0xEF,0x57,0x0B,0x00
/* discovery response */
case gecko_evt_le_gap_scan_response_id:
scanned_slave_device.rssi = evt->data.evt_le_gap_scan_response.rssi;
scanned_slave_device.packet_type = evt->data.evt_le_gap_scan_response.packet_type;
scanned_slave_device.address = evt->data.evt_le_gap_scan_response.address;
scanned_slave_device.address_type = evt->data.evt_le_gap_scan_response.address_type;
scanned_slave_device.bonding = evt->data.evt_le_gap_scan_response.bonding;
/* read the data from the scan response, the response include the device name */
for(i=0;i<evt->data.evt_le_gap_scan_response.data.len;i++)
{
/*这里读取回来从设备的广播数据内容,数据长度在evt->data.evt_le_gap_scan_response.data.len中 */
/*从设备广播出来的广播内容全在这里,包括蓝牙设备的名称等evt->data.evt_le_gap_scan_response.data.data*/
scan_date_from_slave_device[i] = evt->data.evt_le_gap_scan_response.data.data[i];
}
/*如果没有显示界面,我们就通过预设的蓝牙地址比较判断,找到期望的那台蓝牙设备 */
/*注意 scanned_slave_device.address.addr与scanned_slave_device.address */
r = memcmp(slave_address_example,scanned_slave_device.address.addr,6);
if(r == 0)
{
/*蓝牙设备比对正确,停止广播 */
gecko_cmd_le_gap_end_procedure();/* stop scan */
}
本参考例程,使用到的变量定义如下:
/* for application */
struct gecko_msg_le_gap_scan_response_evt_t scanned_slave_device;
uint8_t scan_date_from_slave_device[40];
uint8_t slave_address_example[6] = {0xFA,0x34,0xEF,0x57,0x0B,0x00};
在void appMain(gecko_configuration_t *pconfig)函数中,还定义了两个局部变量:
uint8_t i = 0;
int8 r = -1;
如果我们成功扫描到了期望的蓝牙设备,下一步的操作就是建立蓝牙连接。请参考《【经验】EFR32无线通信模块AN110——蓝牙BLE(建立蓝牙连接)》。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由紫云提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
EFR32无线通信模块AN310——Zigbee(利用Host升级NCP固件)
EFR32无线通信模块是世强基于Silicon Labs EFR32MG平台自主设计的无线模块,Silicon Labs的ZigBee网关采用Host+NCP模式,即Host运行Application,EFR32MG内部运行Ember stack。网关中会遇到需要NCP固件的情况,本篇文章基于EFR32无线通信模块指导大家利用Host升级NCP的固件。
设计经验 发布时间 : 2018-07-05
EFR32无线通信模块AN003——RailTest (使用操作)
本文介绍下Silicon Labs EFR32无线通信模块Railtest几个常用的指令,及通用的测试方法。
设计经验 发布时间 : 2018-05-31
【经验】基于Silicon Labs无线SoC芯片MG24开发套件的Matter入门指导文章汇总
本文主要介绍基于Silicon Labs MG24开发套件的Matter入门指导文章汇总。
设计经验 发布时间 : 2023-06-30
携手无线技术联盟扩展IoT战略-全面布局创新技术和人工智能+安全
物联网(IoT)无线连接技术时刻在发生新变化。近日,物联传媒记者在深圳物联网展会期间特别采访了Silicon Labs亚太区生态高级经理刘俊先生,此次访谈紧密围绕公司在刚结束的深圳物联网展中亮相的前沿科技成果,深入讨论了技术创新、产品优势、应用前景等话题。
原厂动态 发布时间 : 2024-10-23
信驰达(RF-star)无线通信模块选型指南
描述- 信驰达(RF-star)是一家专注于低功耗无线射频应用的高新技术企业,致力于为客户提供基于 BLE、Wi-Fi、 UWB、Zigbee、Thread、Matter、Sub-1G、Wi-SUN、LoRa等核心技术的软硬件设计与制造,APP及物联网云后台开发、大数据分析、以及OEM与ODM服务,其产品及服务广泛分布于新能源汽车、消费电子、医疗电子、工业物联网、智慧能源等领域。公司于2010年在深圳成立,并陆续在香港、成都、北京,苏州设立分部。
型号- RF-BMPA-2541B1,RF-DG-52PA,RF-WM-20DNB1,RSBRS02AI,RF-WM-3235A1S,RF-SM-1277B2,RF-SM-1277B1,RF-BM-ND04I,RSBRS02AA,RF-WM-10AFB1,RF-BM-ND04C,RF-BM-S01,RF-BM-S02,RF-BM-2652P2I,RF-WM-3200B3,RF-WM-3200B1,3B32_V102,RF-BM-4044B5,RF-WM-20CMB1,RF-BM-ND05I,RF-BM-4044B2,RF-BM-4044B4,RF-SM-1077B2,RF-BM-4044B3,RF-SM-1077B1,RF-BM-2642B2,RF-BM-2642B1,RF-DG-40A,RF-BM-BG22B1,RF-ZM-2530P1I,RF-BM-BG22B3,RF-BM-BG22A3,RF-WM-3235B1S,RF-B-SR1,RF-BM-ND02C,RF-BM-4077B1,RF-BM-4077B2,RF-BM-MG24B2,RF-BM-MG24B1,RF-BM-ND04A,RF-BM-2652P7,VL-LE01B,VL-LE01A,RF-BM-2340T1,WE1005,RF-BM-2340T3,RF-BM-2340T2,RF-BM-BG22C3,RF-BM-2652P2,RF-BM-2652P3,RF-BM-2652P4,RF-BM-4077B1L,RF-BM-2652P1,RF-ZM-2530B1,RF-WM-ESP32B1,RSBRS02ABR-01,RF-BM-ND09A,RF-WM-11AFB1,RF-DG-22A,RF-BM-4055B1L,RF-BM-2340QB1,RF-BM-ND04CI,RF-BM-2340C2,RF-DG-52PAS,RF-B-AR3,RF-B-AR4,RF-B-AR1,RF-B-AR2,RF-BM-2652B1,RF-ZM-2530P1,RF-BM-2642QB1I,RF-BM-2652B2,RF-BM-BG22A1,RF-TI1352B1,RF-ZM-2530B1I,RF-NBE01,RF-BM-2340A2I,RF-BM-BG22A1I,RF-BM-2340B1,RF-BM-2652RB2,RF-WM-3235B1,RF-BM-2340B1C,RF-BM-S02A,RF-CC2540A1,RSBRS02ABR,RF-BM-ND10,RF-BM-S02I,RF-DG-32B,RF-BM-BG24B1,RF-BM-ND01,RF-BM-ND02,RF-BM-ND04,RF-BM-ND05,RF-BM-ND06,RF-BM-ND07,RF-BM-ND08,RF-BM-ND09,RF-SM-1044B2,RF-SM-1044B1,RF-BM-2340A2,RF-BM-2340B1I,RF-SM-1044B4,RF-TI1352P1,RF-WM-3235A1,RF-TI1352P2,RF-BM-2652P4I,RF-BM-ND08C,RF-BM-S01A,RF-BM-ND08A,RF-WM-3220B1,RF-BM-2651B1,RF-BM-BG24B2,RF-BM-BG22A3I,RSBRS02ABRI
芯科科技Matter-over-Thread SoC芯片技术,优化实现“无钥匙进入”智能锁系统解决方案
Nuki和U-tec集成芯科科技(Silicon Labs)的Matter-over-Thread SoC芯片技术,优化实现了“无钥匙进入”智能锁系统解决方案。通过Matter-over-Thread,两款无线门锁系统都不需要额外的桥接或模块,即可达成在多个物联网或智能家居生态系统中运行。
应用方案 发布时间 : 2024-05-10
【经验】使用Simplicity Commander工具读写EFR32无线SoC芯片EUI和install code方法
本文以Silicon Labs EFR32FG23 Sub-G无线SoC芯片为例,介绍如何读写EFR32无线SoC芯片的EUI和install code的方法。
设计经验 发布时间 : 2023-04-21
【经验】使用串口来升级EFR32FG23无线SoC芯片固件的方法
本文主要介绍如何使用BootLoader——NCP UART XMODEM工程实现使用串口升级Silicon Labs EFR32FG23无线SoC芯片固件的方法。
设计经验 发布时间 : 2022-09-01
如何用EFR32FG23无线SoC芯片读取平均RSSI?
本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取某个信道的平均RSSI的方法。
设计经验 发布时间 : 2024-03-07
EFR32无线通信模块AN004--RailTest(接收灵敏度开路测试)
EFR32标准模块,是世强独立研发,供用户学习、使用的射频模块。这个模块搭载Silicon Labs 多频段多协议的EFR32MG系列无线SOC芯片EFR32MG12P433F1024GM48,7*7mm QFN48封装,广泛用于智能门锁,门禁系统,照明系统,智能家居,无线抄表等领域。本文基于一站式开发平台simplicity studio V4和EFR32标准模块,介绍如何测试接收灵敏度。
设计经验 发布时间 : 2018-08-24
【经验】配置迈斯威志WizPro200EFM烧录器实现脱机烧录无线SoC芯片EFR32MG21固件的方法
Silicon Labs的EFR32MG21无线SoC芯片,主要用于ZigBee和Matter设备。本文主要介绍如何配置迈斯威志WizPro200EFM烧录器,实现脱机烧录EFR32MG21无线SoC芯片固件的方法。
设计经验 发布时间 : 2023-01-21
EFR32FG23无线SoC芯片读取数据包实时RSSI值的方法
本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取数据包的实时RSSI值的方法。
设计经验 发布时间 : 2024-03-07
EFR32无线通信模块AN002——BootLoader(standalone)
Silicon Labs的EFR32系列无线SoC芯片提供了Gecko Bootloader支持设备更新应用程序,Gecko Bootloader分两种模式,一种模式称为standalone bootloader,另一种模式称为application bootloader。本文指导大家配置Standalone Bootloader工程,并对应用程序更新。
设计经验 发布时间 : 2018-06-26
EFR32无线通信模块AN003——RailTest(工程创建)
EFR32标准模块,是世强独立研发,供用户学习、使用的射频模块。这个模块可以搭载Silicon Labs不同系列的EFR32芯片,包括私有协议的EFR32FG、BLE & BT5.0 &BT MESH的EFR32BG,及多协议的EFR32MG。因为从EFR32系列的芯片本身,同封装芯片都可以完美兼容。
设计经验 发布时间 : 2018-05-31
【IC】磐启微电子2.4G无线收发SOC芯片PAN7330,休眠电流仅0.1μA,适用于智能家居等领域
磐启微电子2.4G无线收发SOC芯片PAN7330是一款集成32位MCU和2.4GHz无线收发电路的SOC芯片,具有高可靠性和低功耗的特点,适合应用于智能家居等领域。通信速率支持2Mbps/1Mbps/250kbps。
产品 发布时间 : 2023-10-11
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥15.1445
现货: 14,989
品牌:SILICON LABS
品类:Gecko Multi-Protocol Wireless SoC
价格:¥38.3724
现货: 6,500
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
可根据用户的wifi模块,使用无线连接测试仪MT8862A,测试IEEE802.11a/b/g/n/ac (2.4Ghz和5Ghz)设备的TX、RX射频特征,输出测试报告。支持到场/视频直播测试,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论