【经验】蓝牙SoC EFR32BG22增加Button功能并发送Notify数据包的方法

2021-03-14 世强
蓝牙SoC,EFR32BG22,Silicon Labs 蓝牙SoC,EFR32BG22,Silicon Labs 蓝牙SoC,EFR32BG22,Silicon Labs 蓝牙SoC,EFR32BG22,Silicon Labs

本文以SILICON LABS蓝牙SoC EFR32BG22的Thunderboard模块为例,介绍如何使用Simplicity Studio v5软件在蓝牙soc_empty工程中添加Button功能,并向手机发送Notify数据包的方法。

1、按照文章:【经验】Simplicity Studio v5如何创建和配置EFR32BG22 LED Server,先创建好支持LED Server的soc_empty工程。

2、打开soc_empty.slcp文件,点击SOFTWARE COMPENENTS,在右上角的搜索栏输入button,点击搜索到的Simple Button,点击右上角的Install,

在弹出的页面直接点击Done。


3、点击Simple Button右边的Configure,

选择按键是使用中断触发还是轮询方式,选择按键对应的引脚,本文以PB01引脚的中断触发方式为例。


4、打开gatt_configuration.btconf文件,点击Custom Service,点击Add New Item图标,点击New Characteristic,可以看到Custom Service下面增加了一个Custom Characteristic。

5、点击Custom Characteristic,将右边的Name改为BTN;勾选ID,将ID设置为BTN;将SIG type设置为custom.type;勾选User Description,将User Description设置为BTN;勾选Notify。

6、打开app.c文件,添加button实例的宏定义代码:#include "sl_simple_button_instances.h"。

7、在app.c文件中添加以下变量的定义。

// These variables need to be added and are used for the connection handle

// and the notification parameters to send Button data to the mobile app

uint8_t g_lab4Connection;

uint8_t notification_data[1] = {0};

uint16_t notification_len = 0;

uint8_t notifyEnabled = false;

extern sl_simple_button_context_t simple_btn0_context;

8、在app.c文件的Application Init上面,添加如下代码。

/*

 * Override function for button press that needs to be added.  This function is

 * called in interrupt context and uses the Bluetooth stack external signaling.

 */

void sl_button_on_change(const sl_button_t *handle)

{

  sl_simple_button_context_t *ctxt = ((sl_simple_button_context_t *)handle[0].context);

  if (ctxt->state) {

      ctxt->history += 1;

      sl_bt_external_signal(1);

  }

}

9、在app.c文件的sl_bt_on_event()函数中,找到sl_bt_evt_connection_opened_id事件,并在事件下面添加如下代码。

// When sending notifications we need the connection handle.  Capture it here

g_lab4Connection = evt->data.evt_connection_opened.connection;

10、在app.c文件的sl_bt_on_event()函数中,在Default event handler前面,添加如下的sl_bt_evt_system_external_signal_id事件处理代码。

    case sl_bt_evt_system_external_signal_id:

      /* Process external signals */

      if (notifyEnabled) {

          if (evt->data.evt_system_external_signal.extsignals == 1)  // 1 = BTN0

          {

              notification_data[0] = (uint8_t)simple_btn0_context.history;

              //simple_btn0_context.history = 0;


              // send number of button presses

              sc = sl_bt_gatt_server_send_characteristic_notification(

                      g_lab4Connection, gattdb_BTN, sizeof(notification_data),

                      notification_data, &notification_len);

          }

      }

      break;

11、继续在Default event handler前面,添加如下的sl_bt_evt_gatt_server_characteristic_status_id事件处理代码。

    case  sl_bt_evt_gatt_server_characteristic_status_id:

      if ((evt->data.evt_gatt_server_characteristic_status.characteristic == gattdb_BTN)

       && (evt->data.evt_gatt_server_characteristic_status.status_flags == 0x01)) {

       if (evt->data.evt_gatt_server_characteristic_status.client_config_flags == 0x00) {

             notifyEnabled = false;

       }

       else {

          notifyEnabled = true;

       }

    }

    break; 

12、保存所有文件,编译程序,并将固件下载到EFR32BG22模块中。

13、打开手机EFR Connect APP,点击Browser,点击Filter,在搜索栏Search by device name or address中输入LED,再点击Search。

14、点击搜索到的LED右边的Connect,

点击Unknown service下面的More Info,

点击Notify,再点击Log。

15、按下EFR32BG22模块上的按键,可以看到Log中出现OnCharacteristicChanged的Notify数据。


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

本文由潮汕小菜提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】STUDIO V5中蓝牙SoC EFR32BG22添加串口LOG打印的方法

在调试Silicon Labs蓝牙SoC EFR32BG22时,一般需要添加LOG打印信息,通过串口的方式来判断代码运行是否正常。由于使用RTT功能在打印信息时无法再次在线调试和代码下载,所以直接采用串口的方式更加便捷。

设计经验    发布时间 : 2021-06-30

【经验】芯科科技EFR32BG22系列蓝牙SOC修改自定义广播包的思路与具体实例

在蓝牙的实际应用中,往往需要自定义的蓝牙广播包来适应不同的应用环境,本文主要介绍基于SILICON LABS的EFR32BG22蓝牙SOC实现自定义广播数据包的方法。

设计经验    发布时间 : 2023-03-16

【经验】Silicon Labs的蓝牙SoC EFR32BG22如何进行在线的OTA升级?

Silicon Labs的蓝牙SOC EFR32BG目前已经能够支持到蓝牙5.2,工艺升级后的EFR32BG22的功耗能够达到接收4.1mA,0dbm发射功耗3.6mA,休眠功耗低至1.4uA,如此低的功耗,能够大幅延长蓝牙设备的电池续航时间。本文介绍蓝牙SoC EFR32BG22如何进行在线的OTA升级。

设计经验    发布时间 : 2020-06-07

【应用】EFR32BG22蓝牙SoC用做CGM连续血糖仪主控,单芯片集成MCU和蓝牙5.2

CGM连续血糖仪为了用户体验更好,要做到小而轻,续航时间长,可以通过手机蓝牙连接获取血糖测量数据。Silicon Labs的蓝牙SoC EFR32BG22在单芯片中集成了MCU和蓝牙5.2,可以作为CGM的主控芯片并实现蓝牙数据收发,有丰富的外设。

应用方案    发布时间 : 2021-07-20

芯科科技EFR32BG27蓝牙SoC助力持续性血糖监测CGM设备长达21天续航时间

在当今医疗领域,持续性血糖监测(CGM)成为人们关注的焦点,特别是对于糖尿病患者而言,实时了解血糖水平变化对于治疗和生活质量的提升具有举足轻重的意义。Silicon Labs提供的极小型、超低功耗EFR32BG27(BG27)蓝牙SoC在CGM中的应用显得尤为突出。本文将详细介绍BG27蓝牙SoC在CGM中的应用及其突出特点。

应用方案    发布时间 : 2024-07-12

BG24蓝牙SoC具备低功耗、小型化等特性,为CoreHW提供蓝牙RTLS的先进解决方案

Silicon Labs(亦称“芯科科技”)的BG24蓝牙SoC具备低功耗、小型化等特性,并支持蓝牙定位技术包括蓝牙到达角(AoA)和蓝牙信道探测(Channel Sounding),为CoreHW公司提供了最先进的实时定位服务(RTLS) 解决方案,以开发出创新的CoreTag和CoreLocator定位应用产品。

应用方案    发布时间 : 2024-06-21

芯科科技提供多款无线连接和控制芯片产品及解决方案,BG2x系列蓝牙SoC成就多样医疗物联网用例,

Silicon Labs(亦称“芯科科技”)的无线SoC和MCU助力全球客户的医疗物联网应用创新,持续打造更智能、高效、安全和便捷的健康监测设备。智能和网联技术近年来一直是医疗和健康保障领域内的热门技术,许多厂商都在利用医疗物联网(IoMT)技术开发更加智能和互联的健康监测设备,以利用物联网、云计算、人工智能和可穿戴等新一代信息通信技术,来帮助用户时刻监控自己的健康状况、降低医疗费用和就医麻烦。

厂牌及品类    发布时间 : 2023-06-29

【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法

EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。

设计经验    发布时间 : 2020-11-28

BG2x系列蓝牙SoC包罗性能、安全、功耗和成本优势,助力移远通信于嵌入式展发表新蓝牙模组

芯科科技一直致力于为物联网设备制造商提供小型、专为应用而优化的BG2x系列蓝牙SoC解决方案。我们的SoC产品不仅能以小体积提供超低功耗且高性能的低功耗蓝牙连接,还具有医疗等级的安全性;同时还领先行业集成了人工智能和机器学习(AI/ML)硬件加速器、模拟、DC-DC转换器、RF认证天线以及许多其他功能。

厂牌及品类    发布时间 : 2024-04-20

洞悉标准化蓝牙ESL应用潜力,芯科科技全系列低功耗、高性能蓝牙SoC和模块现已支持最新蓝牙5.4版本

随着蓝牙标准的推陈出新,Silicon Labs(亦称“芯科科技”)也持续升级蓝牙解决方案,全系列低功耗、高性能蓝牙SoC和模块现已支持最新蓝牙5.4版本,以满足开发人员的需求。

厂牌及品类    发布时间 : 2023-08-10

【经验】Silicon Labs蓝牙Soc芯片EFR32BG22的蓝牙广播功率设置及注意事项

用户在使用Silicon Labs的蓝牙Soc芯片EFR32BG22实现蓝牙广播功能时,在不同的应用场景中要设置广播的发射功率,有的是为了降低产品的功耗,有的是为了增加或缩短通信的距离。那要如何设置广播时的功耗以及在设置时有哪些需要注意的事项?

设计经验    发布时间 : 2021-12-24

EFR32BG2x系列蓝牙SoC如何配置外接FEM引脚,驱动FEM?

Silicon Labs公司的EFR32BG21或者EFR32BG2x系列的蓝牙SoC最大可以支持20dBm的发射功率,以及非常优秀的接收灵敏度。本文以BG21评估板SLWRB4181A,基于GSDK 4.4.1,介绍如何快速配置BG21实现FEM适配。

设计经验    发布时间 : 2024-02-28

【经验】蓝牙SoC EFR32BG22的高精度ADC配置步骤与注意事项

Silicon Labs的EFR32BG22系列蓝牙SoC内部集成高精度ADC功能,采用内部1.21V作为Vref,ADC真实有效位数可达13.5bit,使用外部1.25V基准源作为Vref,精度可达14.3bit。本文介绍ADC配置相关步骤以及注意项目。

设计经验    发布时间 : 2020-11-04

【经验】Silicon Labs蓝牙SoC在开启了串口后,如何降低功耗?

在调试Silicon Labs的蓝牙SoC时,我们需要打开串口日志输出以方便调试,但是在添加了Log和IO Stream:USART组件后,可以看到日志可以输出了,但是随之EM2休眠功耗却降不下去了,这是由于添加了串口后,默认串口在EM2下是开启的,导致EM2下功耗会比较高,本文将以EFR32BG27为例,指导如何在添加了串口后降低串口功耗。

设计经验    发布时间 : 2023-09-05

【经验】基于studio v5蓝牙SOC EFR32BG22添加OTA的注意事项

本文主要讲解Silicon Labs的基于studio v5蓝牙SOC EFR32BG22添加OTA的注意事项,适用于内部Flash或者外部SPI Flash的OTA升级。

设计经验    发布时间 : 2021-09-20

展开更多

电子商城

查看更多

只看有货

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 111,255

品牌:SILICON LABS

品类:评估工具

价格:¥111.8652

现货: 1

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:开发工具

价格:¥331.7858

现货: 0

品牌:芯海

品类:蓝牙芯片

价格:¥3.3334

现货: 77,830

品牌:芯海

品类:低功耗蓝牙SOC芯片

价格:¥3.5334

现货: 7,470

品牌:芯海

品类:低功耗蓝牙SOC芯片

价格:¥6.1334

现货: 5,951

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:150,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:Position Sensor

价格:¥3.0897

现货:12,568

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:Gecko MCU

价格:¥15.6000

现货:5,353

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙射频及通信协议测试

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。

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

语音/录音芯片定制

提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。

最小起订量: 1pcs 提交需求>

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

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

收藏
收藏当前页面