【经验】SiliconLabs EFR32BG22芯片如何实现BLE连接并进行数据收发
不少首次接触BLE的开发者不太清楚如何实现BLE数据的交互,本文以SiliconLabs的EFR32BG22芯片平台为例,指导如何通过建立BLE连接并进行数据交互。
硬件:SLTB010A开发板
软件:Simplicity Studio V5,GSDK v4.2.1
APP:EFR Conncet,获取链接:https://github.com/SiliconLabs/EFRConnect-android/tree/master/build
1、SLTB010A连接上电脑,通过Simplicity Studio V5创建SoC Empty工程。
2、打开工程的GATT Configurator,新增自定义Service并在该Service下创建一个Characteristic。
3、配置新创建的Characteristic,将ID选项勾选,设置名称为read_wirte(代码中需要用到),数据长度限制修改为50字节并勾选可变长度(不修改默认只能收发单字节),同时将write和notify权限开启。
4、在app.c中,加入定义和处理代码。
#include "gatt_db.h"
#include <stdio.h>
uint8_t _connection = 0;
char read_buf[50];
char write_buf[60];
memset(read_buf, 0, sizeof(read_buf));
memset(write_buf, 0, sizeof(read_buf));
_connection = evt->data.evt_connection_opened.connection;
//当收到连接对端发过来的数据时,会产生该事件
case sl_bt_evt_gatt_server_attribute_value_id:
// 将接收到的数据保存到read_buf
strncpy(read_buf, (char *)evt->data.evt_gatt_server_attribute_value.value.data, evt->data.evt_gatt_server_attribute_value.value.len);
// 将接收到的数据加上前缀Device:并保存到write_buf
sprintf(write_buf, "Device:%s\n", read_buf);
// 通过Notify的方式把数据发回给连接对端
sc = sl_bt_gatt_server_send_notification(_connection, gattdb_read_write, strlen(write_buf), (uint8_t *)write_buf);
app_assert_status(sc);
break;
5、编译工程并烧录,注意要同时烧录bootloader,bootloader的生成可以参考https://www.sekorm.com/news/55128086.html
6、手机打开EFR Connect APP,搜索连接对应的蓝牙设备,设备名称为Empty Example。
7、在对应的Characteristic下,点击Notify进行使能,然后再点击Write。
8、在发送窗口中填写需要发送的数据”1234”,点击send,然后可以看到设备端返回的数据”Device:1234”,至此,BLE的数据收发完成。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由xion提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关研发服务和供应服务
相关推荐
【经验】Silicon Labs蓝牙Soc芯片EFR32BG22的蓝牙广播功率设置及注意事项
用户在使用Silicon Labs的蓝牙Soc芯片EFR32BG22实现蓝牙广播功能时,在不同的应用场景中要设置广播的发射功率,有的是为了降低产品的功耗,有的是为了增加或缩短通信的距离。那要如何设置广播时的功耗以及在设置时有哪些需要注意的事项?
【经验】Silicon Labs无线收发芯片Si4463如何区分芯片版本号?
Si4463是Silicon Labs设计的支持Sub-G频段的无线收发芯片。目前Si4463芯片有B1和C2两种版本,这两个版本芯片radio驱动代码的si446x_patch.h和radio_config.h文件有差别。本文主要介绍Si4463芯片区分芯片版本号的方法。
【经验】使用Simplicity Commander工具读写EFR32无线SoC芯片EUI和install code方法
本文以Silicon Labs EFR32FG23 Sub-G无线SoC芯片为例,介绍如何读写EFR32无线SoC芯片的EUI和install code的方法。
【应用】芯科小体积蓝牙SOC芯片EFR32BG22满足CGM便携式需求,唤醒模式下功耗只有0.17μA
芯科EFR32BG22芯片可以实现极低的功耗,休眠模式下平均功耗1.40 μA,唤醒模式下功耗只有0.17 μA ,适合CGM等要求长时间使用的设备。通过对芯片进行灵活的功耗管理和优化,可以尽量延长设备的使用寿命,从而提高糖尿病患者的使用体验。
【经验】使用Simplicity Commander生成EFR32FG23芯片升级固件所需gbl文件的方法
当我们使用串口来升级EFR32FG23芯片的固件时,需要用到gbl格式的文件,本文以EFR32FG23的rail_soc_simple_trx工程为例,介绍使用Simplicity Commander工具将EFR32FG23的s37文件生成gbl文件的方法。
Silicon labs 蓝牙SOC选型表
Cortex-M4/M33内核,支持蓝牙5,待机功耗1.2μA;实测网络节点100+,工作温度高达125℃,提供芯片和模块。其最新的1.4μA超低功耗蓝牙SoC EFR32BG22具有主频高达76.8MHz Cortex-M33内核,16位ADC,支持蓝牙5.2与AoX定位和蓝牙Mesh协议。
产品型号
|
品类
|
MCU Core
|
Core Frequency (MHz)
|
Flash
|
RAM
|
Secure Vault
|
Bluetooth
|
Bluetooth 5
|
Bluetooth Mesh
|
Cryptography
|
Output Power Range (dBm)
|
GPIO
|
I²C
|
SPI
|
I²S
|
Receive Sensitivity
|
ADC
|
Comparators
|
Temperature Range (ºC)
|
Package Type
|
Package Size(mm)
|
EFR32BG24B110F1536IM48-B
|
Bluetooth®Wireless SoC
|
ARM Cortex-M33
|
78
|
1536
|
256
|
High
|
5.3
|
Bluetooth 5
|
Bluetooth Mesh
|
AES-128;AES-256;ECC;SHA-1;SHA-2
|
-20 to 10
|
28
|
2
|
3
|
1
|
-97.6DBM(1Mbit/s GFSK)
|
12-bit,SAR,1Msps
|
2
|
-40 to 125
|
QFN48
|
6x6
|
选型表 - SILICON LABS 立即选型
【经验】如何使用Simplicity Studio来抓取蓝牙芯片的广播数据包
Simplicity Studio是一款以Silicon Labs系列芯片为主的集成开发环境(IDE),它提供了全面的工具链和软件框架,可用于设计、开发和调试各种嵌入式系统。
【经验】芯科EFR32系列通过命令行读取芯片NVM3区域内容的方法
在开发芯科EFR32系列芯片有时候出现问题或者需要对比要读取NVM3区域的内容,不知道如何抓取数据,芯科的图形软件里面也没有这个功能,此时就需要通过命令行来进行读取数据,本文就是介绍芯科EFR32系列通过命令行读取芯片NVM3区域内容。
【经验】蓝牙SoC EFR32BG22芯片如何设置蓝牙广播时间与扫描时间?
Silicon Labs的蓝牙SoC EFR32BG22芯片具有较低的工作电流,在软件设计时还可以通过延长广播间隔时间来降低系统的功耗,但在实际使用中会遇到广播时间设置的较长时主机无法扫描到设备的情况,下面就介绍如何合理的设置蓝牙的广播时间。
Kudelski IoT加入芯科“芯伙伴”技术合作计划,扩展芯片硬件功能,联手强化物联网端到端安全
Silicon Labs热烈欢迎 Kudelski IoT成为“芯伙伴”技术合作计划的正式成员。Silicon Labs借由与Kudelski IoT携手,将能够全面强化物联网端到端安全技术的支持能力,以满足物联网开发人员的需求。
【经验】蓝牙SoC芯片EFR32BG22如何实现蓝牙串口透传功能?
在使用Silicon Labs的蓝牙SoC芯片EFR32BG22做蓝牙模块时,一般需要实现串口透传功能,但BLE不支持SPP功能,要实现这个功能只能用户手动增加相关的服务。本文介绍在EFR32BG22上实现蓝牙串口透传功能(SPP)的方法 。
【经验】蓝牙SoC芯片EFR32BG22使用SSV5生成Bootloader的方法
如果用户拿到一颗新的Silicon Labs EFR32BG22 蓝牙SoC芯片,使用Bluetooth例程soc-empty编译完成烧录后,程序没有运行起来,最可能的情况是新的芯片内部没有Bootloader。本文讲解如何使用Simplicity Studio生成Bootloader例程并下载到目标芯片使芯片可以正常使用。
【经验】Silicon Labs通过命令行对芯片解除写保护的方法
开发过程中,芯片被设置了写保护导致了芯片进入了只读状态,能读取到芯片的所有信息但是不能编程,写入程序,当然也不能烧录,本文就是介绍如何解除Silicon Labs如何通过命令行来解除这种写保护状态的方法。
电子商城
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,878
现货市场
服务
可支持TI AM335x/AM5718 和NXP iMX6/iMX8芯片定制核心板和计算单板;支持NXP iMX6核心模组X / F / H系列、TI AM335x核心模组X / N / H系列,与兼容的底板组合定制单板计算机。
最小起订量: 1pcs 提交需求>
世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论