【经验】10分钟完成BLE蓝牙智能工程搭建到数据交互代码实现

2017-09-24 世强 紫云
Bluetooth,EFR32BG,EFR32BG1B232F256,EFR32BG1P332F256 Bluetooth,EFR32BG,EFR32BG1B232F256,EFR32BG1P332F256 Bluetooth,EFR32BG,EFR32BG1B232F256,EFR32BG1P332F256 Bluetooth,EFR32BG,EFR32BG1B232F256,EFR32BG1P332F256

随着物联网(IoT)的快速发展,BLE蓝牙智能设备被广泛应用,越来越多的嵌入式工程师们开始自己的蓝牙工程代码开发历程,此时此刻或许你手头上正拿着一颗BLE蓝牙SoC芯片或者评估板。芯片的用户手册至少也有几百页,多的上千页。再加上蓝牙协议栈和接口函数的无数页文档。淡定!千万别炸了!要快速完成自己项目应用代码,要选择什么样的蓝牙SOC芯片,什么样的开发平台,又该从哪里开始写起第一行代码呢?


本文详细介绍一款SILICON LABS 公司的低功耗蓝牙智能SoC芯片EFR32BG系列,支持最新的蓝牙5.0版本协议栈。采用Silicon Labs一站式开发平台simplicity studio V4(以下简称SSv4),内嵌免费GUN编译工具(基于GCC)和蓝牙5.0协议栈。支持可视化配置功能和代码自动生成功能! "仅需十分钟!",即可让你在不用看一页数据手册的情况下,完成自己的蓝牙软件工程搭建和数据交互代码实现。实现快速开发,快速产品上市就是我们的目标。你准备好了吗?Ready Go…


本文的具体目标是:

1)创建一个EFR32BG蓝牙工程。

2)新建自己的server和characteristic。

3)代码实现蓝牙广播,连接,与手机APP端实现蓝牙数据交互,连接断开并重新开始蓝牙广播。


1、运行SSv4软件,选择正确的的芯片型号,请以实际拿到的芯片型号为准。如下图:


 

2、选择Bluetooth SDK。


 


3、选择SOC-Empty 空工程,并给新建的工程命名。


 

4、再次确认芯片型号,并选择GUN编译工具。也可以选择IAR编译工具。目前EFR32BG支持这两种编译工具。点击最后一步"Finish"之后,等待SSv4生成蓝牙工程。 



5、双击打开蓝牙工程里面的 *.isc 文件"soc-empty_EFR32BG.isc",添加自己的GATT server和characteristic。


为了手机APP发现设备时,容易找到自己的蓝牙设备,我们先在*.isc 文件里修改"Device Name",让蓝牙广播出来的设备名称与众不同。修改Value 和 Length = Value 字符长度。如下:


 

1)点击 create new item 图标  

2)点击 New Service

3)选择新添加的Service ,并给这个Service命名, 例如:MyService

 

4)点击 create new item 图标  

5)点击 New Characteristic

6)选择新建好的Characteristic ,并给这个Characteristic命名,例如MyCharacteristic

7)勾选靠近ID的复选框,并输入一个ID到文本框内:例如:Notify_Read_Write

这个填入ID名称Notify_Read_Write最终会生成Characteristic handle,生成后会自动增加前缀“gattdb_”变成“gattdb_Notify_Read_Write”存放在gatt_db.h文件中。

在发送notify数据,调用cmd_gatt_server_send_characteristic_notification命令会用到这个Characteristic handle,往下看参考代码的时候就会发现。

8)为Characteristic添加属性,点击下方的Add new item ();添加Read,Write, Notify属性,并设置属性为True。如下图:


 

提示:本例中,在value settings中,length 设置为1字节。如果需要收发更多数据,请修改这个length的值并重新点击"generate"生成配置。如果是变长数据收发,也可以勾选"Variable length"。


6、GATT配置完成以后,点击*.isc 文件右上角的""生成源代码


7、编译并下载代码到目标板。这个时候打开手机APP,就能发现EFR32BG广播出来的设备和名称了。点击连接以后,能看到我们创建的GATT server和characteristic。到目前为止,我们没有编写一行代码,就已经实现了蓝牙广播,连接和连接断开,以及断开之后的重新广播功能。


 

 8、下面开始,我们要实现我们的终极目标,添加代码,实现EFR32BG与手机APP之间的数据交互。我们设计的代码示例实现如下功能:

1)开启并设定一个定时器,定时时间为1秒钟。

2)定义一个计数器,每秒钟计数器加1.

3)每1秒钟,EFR32BG蓝牙SOC自动把计数器数据更新给手机APP。

4)手机APP可以通过BLE蓝牙读取和修改计数器的值。


首先定义4个变量,在后面的代码中会用到:

uint8_t connHandle = 0;

uint8_t u8Notify_Read_Write_Cnt = 0;

uint8_t u8length = 0;

uint8_t u8DataRxBuffer[20];


1) 在mian.c文件中找到  while (1) 下面的 switch (BGLIB_MSG_ID(evt->header))

添加如下代码,设定一个定时器,定时时间为1秒钟:



2)创建一个定时器事件ID,每次定时器事件,都会运行到这里。添加一个计数器,每秒加1.并把数据保存到本地GATT, 同时把数据发送给手机APP。

下方的代码,gecko_cmd_gatt_server_write_attribute_value,gecko_cmd_gatt_server_send_characteristic_notification命令参数中用到的Attribute handle和Characteristic handle

就是在前面“.isc”文件中创建Characteristic时填入的Characteristic Settings下方 ID生成的,在gatt_db.h文件中可以找到,带 “gattdb_” 前缀。详见前面创建Characteristic的步骤说明。



3)创建一个事件ID,用于接收数据,并把接收到的数据保存到本地。



结束语:

十分钟到!以上添加数行代码,就全部完成了蓝牙代码工程与手机APP之间的数据交互。快速简单,高效。如果这篇文章对您的开发非常有帮助,别忘了在下方点个“赞”哦!

 

相关技术文档:

Silicon Labs EFR32BG12 低能耗 SoC 产品数据手册 详情>>>

Silicon Labs UG144: EFR32BG Blue Gecko蓝牙智能入门套件用户指南 详情>>>


看到这里您是否又有项目灵感需实现,点击下面开发软件帮你忙。

Silicon Labs Simplicity Studio平台开发工具


世强元件电商版权所有,转载请注明来源及链接。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 17
Bluetooth 安防 楼宇自动化 室内照明 智能家居 EFR32BG1B132F128 EFR32BG1P332F256GJ43-C0R EFR32BG12P232F1024GL125-B EFR32BG1B232F256GJ43-C0 EFR32BG1V132F128GM32-C0 EFR32BG1V132F256GJ43-C0R EFR32BG12P332F1024GM48-BR EFR32BG1V132F256GM32-B0 EFR32BG1P232F256GM48-B0 EFR32BG1B232F256GM48-C0 EFR32BG1V132F256 EFR32BG12P432F1024GM48-B EFR32BG12P232F1024GL125-BR EFR32BG1P232F256GM32-C0 EFR32BG1B132F128GM32-C0 EFR32BG1B132F128GM48-B0 EFR32BG1V132F256GM48-B0 EFR32BG1B232F128GM48-B0 EFR32BG12P433F1024GM48-B EFR32BG12P132F1024GL125-B EFR32BG EFR32BG1B132F256 EFR32BG12P232F1024GM48-B EFR32BG12P232F1024GM48-BR EFR32BG12P132F1024GM48-B EFR32BG1V132F128 EFR32BG1P233F256GM48-C0 EFR32BG1P332F256GM32-B0 EFR32BG1P332F256GM48-B0 EFR32BG1P332F256GJ43-C0 EFR32BG1B232F256GM32-B0 EFR32BG12P132F1024GL125-BR EFR32BG1B132F256GM32-C0R EFR32BG1P233F256 EFR32BG1B132F256GM48-C0R EFR32BG12P332F1024GM48-B EFR32BG1P332F256 EFR32BG1B132F256GM48-C0 EFR32BG12P132F1024GM48-BR EFR32BG12P433F1024GL125-B EFR32BG12P132F1024 EFR32BG1B232F128 EFR32BG12P432F1024GL125-B EFR32BG1P332F256GM32-C0 EFR32BG12P432F1024 EFR32BG12P332F1024 EFR32BG12P232F1024 EFR32BG12P332F1024GL125-BR EFR32BG1V132F128GM32-C0R EFR32BG12P433F1024 EFR32BG12P433F1024GM48-BR EFR32BG1V132F256GM32-C0 EFR32BG1P233F256GM48-C0R EFR32BG12P432F1024GM48-BR EFR32BG1B132F256GM48-B0 EFR32BG1V132F128GM48-B0 EFR32BG1B232F256GM48-B0 EFR32BG12P433F1024GL125-BR EFR32BG12P432F1024GL125-BR EFR32BG1P232F256 EFR32BG12P332F1024GL125-B EFR32BG1B232F256GJ43-C0R EFR32BG1B232F256 EFR32BG1V132F256GJ43-C0 低功耗蓝牙智能SoC芯片 蓝牙智能soc 蓝牙SoC芯片 蓝牙数据交互 EFR32BG蓝牙工程 GUN编译 IAR编译 Silicon Labs蓝牙soc芯片 蓝牙广播 SILICON LABS 管状电机

本网站所有内容禁止转载,否则追究法律责任!

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(17

  • 番茄蛋 Lv5. 技术专家 2018-09-18
    很实用。
  • z24656 Lv6. 高级专家 2018-06-08
    好东东
  • 一头笨牛 Lv8. 研究员 2018-03-13
    学习
  • Xin Lv4. 资深工程师 2018-02-26
    这个例子不错
  • 天行健 Lv6. 高级专家 2018-01-29
    好资料
  • 用户83338807 Lv4. 资深工程师 2018-01-22
    这个例子貌似不完整,gattdb_Notify_Read_Write没有定义,请问有没有完整的代码。谢谢!
    • 世小强回复: 请用户按照文档从头实际操作一遍,上面的步骤请不要跳过,每一步都是有用的,这个文档是可重复性实验的,谢谢!
  • 用户83338807 Lv4. 资深工程师 2018-01-19
    这个例子真贴心!
  • 用户46743402 Lv4. 资深工程师 2017-12-14
    学习
  • terrydl Lv9. 科学家 2017-11-27
    很详细,不错
  • killyo Lv5. 技术专家 2017-11-01
    好东西,支持下
展开更多评论

相关推荐

【经验】EFR32BG低功耗蓝牙SoC串口DFU固件升级上位机实现过程详解

EFR32BG的串口DFU过程是完全参照《Bluetooth Smart Software API Reference Manual》中的API命令来实现。

2017-07-20 -  设计经验 代理服务 技术支持 采购服务

【应用】支持PTA共存机制的WIFI、ZigBee、BlueTooth和4G多协议智能家居网关应用方案

早期的多协议智能家居网关大多不支持共存机制,在拥挤的2.4GHz频段中,存在着相互干扰的问题,影响通讯效果。为解决上述问题,本方案采用支持PTA共存机制的WIFI、ZigBee、BlueTooth的SOC芯片和全网通4G模块,并搭配高性价比的电源和高精度晶振,实现支持共存机制的多协议智能家居网关应用方案。

2020-04-11 -  应用方案

蓝牙®Mesh ADK 6.0.5.0

描述- 本资料介绍了Silicon Labs公司发布的蓝牙Mesh ADK 6.0.5.0版本,该版本支持蓝牙Mesh和蓝牙5功能,适用于创建大规模设备网络。主要特点包括支持网络照明控制(NLC)配置文件,支持iOS和Android系统,以及提供详细的安装和使用说明。此外,资料还涵盖了新功能、改进、已知问题和兼容性信息。

October 23, 2024  - SILICON LABS  - 开发环境(软件/固件)  - 6.0.5.0 代理服务 技术支持 采购服务

BGM220S 无线 Gecko Bluetooth® 模块数据表

型号- BGM220SC22WGA2,BGM220S,BGM220SC22HNA2,BGM220S12A,BGM220SC12WGA2,BGM220S22A

October, 2023  - SILICON LABS  - 数据手册  - Rev. 1.2 代理服务 技术支持 采购服务 查看更多版本

Bluetooth®Mesh SDK 6.1.3.0 GA Gecko SDK套件4.4

描述- 本资料介绍了Silicon Labs的蓝牙mesh SDK 6.1.3.0 GA Gecko SDK Suite 4.4版本,该版本支持蓝牙mesh 1.1规范,并增加了网络照明控制(NLC)配置文件。SDK支持多种编译器,包括IAR Embedded Workbench for ARM和GCC。资料详细说明了新功能、API、改进、已知问题和已修复问题,并提供了安装和使用指南。

型号- BRD4182,BRD4312,BRD4311

October 23, 2024  - SILICON LABS  - 开发环境(软件/固件)  - 6.1.3.0 代理服务 技术支持 采购服务

BGM220P 无线 Gecko Bluetooth 模块数据表

描述- BGM220P是一款基于EFR32BG22 SoC的无线蓝牙模块,专为电池供电的物联网(IoT)产品设计。该模块支持蓝牙5.2标准,具备高性能射频范围和低能耗特性,同时内置天线和高传输功率。它集成了丰富的外设和多种时钟管理选项,并提供了全面的可升级软件栈和全球法规认证,适用于资产追踪、运动健身设备、便携式医疗设备、智能家居、工业和楼宇自动化等领域。

型号- BGM220PC22WGA2,BGM220PC22HNA2,BGM220P22A,BGM220P

October, 2022  - SILICON LABS  - 数据手册  - Rev. 1.1 代理服务 技术支持 采购服务 查看更多版本

Silicon Labs(芯科科技) BT121 Bluetooth Smart功能模块 数据手册

描述- 该文档详细介绍了BT121蓝牙智能模块的技术规格和应用指南。BT121是一款集成了高性能蓝牙无线电、低功耗ARM Cortex微控制器和Bluegiga蓝牙智能堆栈软件的模块,适用于需要同时支持蓝牙智能和经典连接的应用。它具有多种硬件接口,包括UART、SPI、I2C等,并支持多种蓝牙协议。

型号- BT121-A-V2C,BT121,BT121-A-V2-IAP,DKBT,BT121-A-V1-IAP,BT121-A-V1,BT121-A-V2,BT121-A

2016年07月07日  - SILICON LABS  - 数据手册  - Rev. 1.53 代理服务 技术支持 采购服务

Bluetooth®Mesh SDK 7.0.2.0 GA Simplicity SDK套件2024.6.2

描述- 本资料介绍了Silicon Labs的Bluetooth mesh SDK 7.0.2.0 GA版本,该版本支持蓝牙mesh网络功能,适用于构建大规模设备网络。主要内容包括:迁移至Simplicity SDK Suite,移除对Series 0/1的支持,支持delta-compressed固件更新。此外,还介绍了兼容的编译器、新特性、新API、改进、已知问题、弃用项目和移除项目等信息。

September 18, 2024  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 采购服务

低功耗蓝牙

描述- 本文档介绍了硅实验室(Silicon Labs)的蓝牙低能耗技术,重点在于其最新版本——蓝牙5.4。该技术适用于需要长电池寿命且数据传输量不大的应用场景。文档详细阐述了蓝牙低能耗架构、核心功能、可扩展性、安全认证以及不同模式下的工作方式。同时,还提供了硬件支持、软件工具和开发套件等相关信息。

型号- BG27,BG24,BG22,BG21,EFR32

2023/5/30  - SILICON LABS  - 数据手册  - v2.0 代理服务 技术支持 采购服务

Silicon Labs(芯科科技) bluegiga WT12 Bluetooth 2 类模块数据手册

描述- 本资料介绍了Bluegiga Technologies公司生产的WT12蓝牙模块。该模块集成了天线、蓝牙无线电和板载iWRAP蓝牙堆栈,适用于快速将蓝牙无线技术集成到设计中。它支持蓝牙2.1 + EDR,具有UART和USB主机接口,并具备多种软件编程IO引脚。

型号- WT12-A-HCI21,WT12,WT12-A-AI5,WT12-A-3,WT12-A-C,WT12-A-AI56C,WT12-A-AI4

2014年04月09日  - SILICON LABS  - 数据手册  - 3 代理服务 技术支持 采购服务

蓝牙®Mesh ADK 7.0.2.0

描述- 本资料介绍了Silicon Labs的Bluetooth Mesh ADK 7.0.2.0版本,该版本支持蓝牙Mesh和蓝牙5功能。主要内容包括:新增支持导入和导出BT Mesh配置数据库的API;改进了移动应用程序,使其成为评估标准Silabs示例和演示的工具;修复了配置失败和节点重启时Mesh对象消失等问题;兼容iOS 15、iOS 16、iOS 17和Android 12、Android 13、Android 14系统。

September 18, 2024  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 采购服务

Silicon Labs(芯科科技) WT11u Bluetooth® Module数据手册

描述- 本资料为Silicon Labs公司WT11u蓝牙模块的数据手册。该模块是一款集成了天线、蓝牙无线电和iWRAP蓝牙堆栈的全集成Class 1模块,适用于快速将长距离和高性能蓝牙无线技术集成到设计中。

型号- WT11U-E-HCI21,WT11U-A,WT11U,WT11U-E-AI5,WT11U-A-HCI21,WT11U-E-AI56,WT11U-A-AI56,WT11U-A-AI5,WT11U-A-AI55,WT11U-E,WT11U-E-AI55

2017年06月06日  - SILICON LABS  - 数据手册  - Version 1.1 代理服务 技术支持 采购服务

BGX13P Bluetooth®Xpress模块数据表

描述- BGX13P蓝牙模块是一款适用于小型设备的低功耗蓝牙解决方案,具备串行接口,支持原始数据流或命令API控制。该模块符合蓝牙5标准,具有高性能射频、低功耗等特点,适用于健康、体育、智能家居等领域。

型号- BGX13PXXXXXXX,BGX13PXXXX,BGX13P22GA-V31R,BGX13P22GAV31,BGM13P32A,BGX13P22,BGX13P22GA-V21R,BGX13P22GA-V31,BGX13P22GA-V21,BGM13P32E,BGX13P,BGX13P22GA

2022/2/18  - SILICON LABS  - 数据手册  - Rev. 1.2 代理服务 技术支持 采购服务

蓝牙®Mesh ADK 6.0.2.0

描述- 本资料介绍了Silicon Labs公司发布的蓝牙Mesh ADK 6.0.2.0版本,该版本支持蓝牙Mesh和蓝牙5功能。主要内容包括:支持网络照明控制(NLC)配置文件,支持iOS和Android系统,以及详细的技术更新和问题修复。资料还提供了安装和使用指南,以及技术支持信息。

April 10, 2024  - SILICON LABS  - 开发环境(软件/固件) 代理服务 技术支持 采购服务
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:BLE SoC

价格:¥39.4871

现货: 483

品牌:SILICON LABS

品类:BLE SoC

价格:¥30.8466

现货: 288

品牌:SILICON LABS

品类:BLE SoC

价格:¥24.9004

现货: 260

品牌:SILICON LABS

品类:BLE SoC

价格:¥88.5444

现货: 100

品牌:SILICON LABS

品类:BLE SoC

价格:¥63.2728

现货: 90

品牌:SILICON LABS

品类:BLE SoC

价格:¥26.2935

现货: 30

品牌:SILICON LABS

品类:BLE SoC

价格:¥20.5338

现货: 16

品牌:SILICON LABS

品类:BLE SoC

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥4.5000

现货:53,089

品牌:RENESAS

品类:MCU

价格:¥20.8557

现货:8,299

品牌:SKYWORKS

品类:RF front-end integrated circuit

价格:¥1.8500

现货:5,897

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥4.5889

现货:2,190

品牌:SKYWORKS

品类:Front-End Module

价格:¥3.4300

现货:1,339

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥5.1556

现货:1,153

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥6.8334

现货:991

品牌:汇顶科技

品类:蓝牙系统级芯片

价格:¥5.0290

现货:123

品牌:RENESAS

品类:微控制器

价格:¥109.6326

现货:100

品牌:RENESAS

品类:开发套件

价格:¥438.5304

现货:100

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

物联网天线方案设计/虚拟天线芯片方案设计

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。

最小起订量: 2500 提交需求>

蓝牙认证BQB测试

支持Bluetooth SIG最新的测试规范,支持2.0(EDR), 2.1(EDR), 3.0(HS), 4.0(LE)规范, 并且能完整覆盖BR/EDR/HS/BLE的所有射频测试项目。测试标准:RF.TS/4.03 ;RF-PHYTS/40.3。

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

查看更多

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

查看更多

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

查看更多

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

查看更多

授权代理品牌:电子材料

查看更多

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

查看更多

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

查看更多

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

查看更多

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

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

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

收藏
收藏当前页面