【Silicon Labs BG22-EK4108A 蓝牙开发评测】评测二 SOC_Blinky服务配置
[复制链接]
本帖最后由 单笑寒 于 2022-1-15 22:50 编辑
评测二 SOC_Blinky服务配置
外国公司喜欢以动物为代号比如Ubuntu(18.04 LTS仿生的海狸、18.10宇宙的墨鱼、19.04摇滚的野狗、19.10黎明的白鼬、20.04 LTS焦点的马岛长尾狸猫、20.10极好的大猩猩、21.04长毛的河马、21.10顽皮的狐猴),芯科也不例外,EFM8蜜蜂系列,还有EFM32/EFM32壁虎系列,今天的主角是32位机壁虎系列2中的EFR32BG22C224F512IM40,对应PCBA有EK4108A、SLTB010A、SLTB004A、SLWSTK6021A、SLWRB4182A、SLWRB4183A、SLWMB4001A,命名规则小小列举一下:
PCBA
|
SoC
|
BRD2001A
|
EFM32G890F128
|
BRD2010A
|
EFM32ZG222F32
|
BRD2012A
|
EFM32HG322F64
|
BRD2100A
|
EFM32TG840F32
|
BRD2102A
|
EFM32TG11B520F128GM80
|
......
|
......
|
BRD4100A
|
EFR32BG1P232F256GM48
|
BRD4101A
|
EFR32BG1P332F256GJ43
|
BRD4103A
|
EFR32BG12P332F1024GL125
|
BRD4104A
|
EFR32BG13P632F512GM48
|
BRD4108A
|
EFR32BG22C224F512IM40
|
BRD4150A
|
EFR32MG1P233F256GM48
|
BRD4150B
|
EFR32MG1P233F256GM48
|
BRD4151A
|
EFR32MG1P232F256GM48
|
BRD4152A
|
EFR32MG1P233F256GM48
|
......
|
......
|
BRD4108A
|
EFR32BG22C224F512IM40
|
......
|
......
|
拿到手的就是这款BRD4108A Explorer Kit(EFR32BG22C224F512IM40),以最简单的LED&Button service为例,目录见gecko_sdk_suite\v3.2\app\bluetooth\example\soc_blinky,打开工程后可以看到GATT服务数据库列表,以xml文件形式,图形化界面直接打开gatt_configuration.btcong,可以直接编辑,比如修改名称为“LBS”:
图1 本地服务
打开app.c可以看到GAP、GATT事件在应用层都可以反馈得到,比如断开、连接事件入口sl_bt_evt_connection_opened_id和sl_bt_evt_connection_closed_id,其他参数更新、写特征值均会触发相应事件然后在动态生成的句柄里搜索哪个属性进入的,比如接口:
sl_status_t sl_bt_gatt_server_read_attribute_value(uint16_t attribute,
uint16_t offset,
size_t max_value_size,
size_t *value_len,
uint8_t *value);
就能从本地生成数据库中找到属性和值,然后在应用层完成用户逻辑。连接上可以看到,共有GAP(1800)、GATT(1801)、Device Info(180A)、LED&Button service(de8a5aac-a99b-c315-0c80-60d4cbb51224)、Silicon Labs OTA(1D14D6EE-FD63-4FA1-BFA4-8F47B42119F0),设备名称改成“LBS”:
图2 扫描服务
连上后写特征值来开关灯:
图3 LBS写1,触发写事件
图3 LBS写0,触发写事件
|