【经验】EFR32无线通信模块AN109——蓝牙BLE(主设备扫描)

2020-02-24 世强
无线通信模块,无线SOC芯片,EFR32,EFR32MG 无线通信模块,无线SOC芯片,EFR32,EFR32MG 无线通信模块,无线SOC芯片,EFR32,EFR32MG 无线通信模块,无线SOC芯片,EFR32,EFR32MG

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(建立蓝牙连接)》。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 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 -  设计经验 代理服务 技术支持 现货查询 批量订货

如何用EFR32FG23无线SoC芯片读取平均RSSI?

本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取某个信道的平均RSSI的方法。

2024-03-07 -  设计经验 代理服务 技术支持 现货查询 批量订货

EFR32无线通信模块AN003——RailTest (使用操作)

本文介绍下Silicon Labs EFR32无线通信模块Railtest几个常用的指令,及通用的测试方法。

2018-05-31 -  设计经验 代理服务 技术支持 现货查询 批量订货

EFR32FG23无线SoC芯片读取数据包实时RSSI值的方法

本文以Silicon Labs的EFR32FG23无线SoC芯片的rail_soc_simple_trx工程为例,介绍EFR32FG23芯片读取数据包的实时RSSI值的方法。

2024-03-07 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】基于Silicon Labs无线SoC芯片MG24开发套件的Matter入门指导文章汇总

本文主要介绍基于Silicon Labs MG24开发套件的Matter入门指导文章汇总。

2023-06-30 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】使用Simplicity Commander工具读写EFR32无线SoC芯片EUI和install code方法

本文以Silicon Labs EFR32FG23 Sub-G无线SoC芯片为例,介绍如何读写EFR32无线SoC芯片的EUI和install code的方法。

2023-04-21 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】无线SoC芯片EFR32MG21程序中MFG_SECURITY_CONFIG参数的设置与功能

在无线SoC芯片EFR32MG21的ZigBee默认Z3Light程序运行时我们可以通过keys print这个CLI命令打印NWK key与TC Link Key等密钥参数,打印的效果如下,那我们是否可以隐藏这些密钥无法打印呢?

2023-05-26 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】使用串口来升级EFR32FG23无线SoC芯片固件的方法

本文主要介绍如何使用BootLoader——NCP UART XMODEM工程实现使用串口升级Silicon Labs EFR32FG23无线SoC芯片固件的方法。

2022-09-01 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】创建ZigBee的无线SOC网关工程操作步骤

Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。

2020-04-09 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】无线SoC芯片EFR32MG21手动生成OTA文件的方法与注意事项

在使用SILICON LABS无线SoC芯片EFR32MG21芯片设计ZigBee产品时,我们会用到OTA功能,这就要产生OTA文件。EmberZNet 6.x版本的项目中会自动为启用了OTA客户端插件的项目创建OTA文件,需要我们手动去创建OTA文件。

2023-05-24 -  设计经验 代理服务 技术支持 现货查询 批量订货

EFR32无线通信模块AN004--RailTest(接收灵敏度开路测试)

EFR32标准模块,是世强独立研发,供用户学习、使用的射频模块。这个模块搭载Silicon Labs 多频段多协议的EFR32MG系列无线SOC芯片EFR32MG12P433F1024GM48,7*7mm QFN48封装,广泛用于智能门锁,门禁系统,照明系统,智能家居,无线抄表等领域。本文基于一站式开发平台simplicity studio V4和EFR32标准模块,介绍如何测试接收灵敏度。

2018-08-24 -  设计经验 代理服务 技术支持 现货查询 批量订货 IoT射频性能测试

【经验】配置迈斯威志WizPro200EFM烧录器实现脱机烧录无线SoC芯片EFR32MG21固件的方法

Silicon Labs的EFR32MG21无线SoC芯片,主要用于ZigBee和Matter设备。本文主要介绍如何配置迈斯威志WizPro200EFM烧录器,实现脱机烧录EFR32MG21无线SoC芯片固件的方法。

2023-01-21 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】ZigBee程序中NVM3基地址的重新定义

我们在使用无线SoC芯片EFR32MG21做ZigBee程序时,程序中会用到NVM3保存一些参数,但NVM3的存储地址我们在程序中很难找到设置的地方,如果想修改NVM3的存储地址要如何处理?

2023-05-23 -  设计经验 代理服务 技术支持 现货查询 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 103,878

品牌: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

品牌:LONGSUNG

品类:无线通信模块

价格:¥22.5000

现货: 1,994

品牌:LONGSUNG

品类:LTE Cat.4模组

价格:¥165.6000

现货: 499

品牌:雅特力

品类:MCU

价格:¥9.7180

现货: 182

品牌:SEKORM

品类:无线通信模块

价格:¥75.0000

现货: 88

品牌:LONGSUNG

品类:无线通信模块

价格:¥140.0000

现货: 76

品牌:LONGSUNG

品类:LTE Cat.4模组

价格:¥133.7500

现货: 75

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SEKORM

品类:无线通信模块

价格:¥75.0000

现货:88

品牌:高新兴物联

品类:NB-IOT模组

价格:¥25.0000

现货:28

品牌:SEKORM

品类:无线通信模块

价格:¥145.0000

现货:12

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:126,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

高压输入/输出电源模块定制

可定制高压电源模块的输入电压100VDC-2000VDC、功率范围5W-500W/4W-60W; 高压输出电源模块的输出电压100VDC-2000VDC。功率范围:4W-60W。

提交需求>

EMC电磁兼容测试

提供电子电气产品的辐射骚扰测试、辐射抗干扰测试,以及RFID,SRD,2G,3G,4G等无线产品的辐射骚扰测试、辐射杂散测试、辐射功率测试以及辐射抗干扰测试。测试频率可覆盖9KHz-26.5GHz。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面