ch592f学习

  • ble基本组成 att是原始数据键值对,gatt是给原始数据加以修饰device service characteristic

gap 管理设备名字 是否可见 是否可链接 广播管理

|

CH592 Device -gatt

│

├── 温湿度 Service -gatt

│ │

│ ├── 温度 Characteristic Temp_Read/NotifyCallback()

│ │ ├── Read

│ │ └── Notify

│ │

│ └── 湿度 Characteristic -gatt

│ ├── Read -gatt

│ └── Notify -gatt

│

└── OTA Service

│

└── OTA Characteristic

├── Write

└── Notify

实际对应

↓

ATT Table

Handle1

Handle2

Handle3

Handle4

...

  • 代码解析
cpp 复制代码
// Simple GATT Profile Callbacks

static OTAProfileCBs_t Peripheral_OTA_IAPProfileCBs = {
    OTA_IAPReadDataComplete, // Charactersitic value change callback
    OTA_IAPWriteData
};

OTAProfile_AddService(GATT_ALL_SERVICES);

 //  Register callback with OTAGATTprofile
OTAProfile_RegisterAppCBs(&Peripheral_OTA_IAPProfileCBs);
  • 理解

开机

↓

OTAProfile_AddService()

创建

BLE Device

│

└── OTA Service

│

└── OTA Characteristic

↓

OTAProfile_RegisterAppCBs()

给Characteristic绑定事件回调处理

Write

↓

OTA_IAPWriteData()

Notify完成

↓

OTA_IAPReadDataComplete()

  • 实际运行

手机发送数据

↓

Write

↓

OTA Characteristic

↓

OTA_IAPWriteData()

↓

Rec_OTA_IAP_DataDeal()

↓

CMD_IAP_INFO

CMD_IAP_ERASE

CMD_IAP_PROM

...

设备回数据

OTA_IAP_SendData()

↓

Notify

↓

OTA Characteristic

↓

手机

发送结束

↓

OTA_IAPReadDataComplete()

相关推荐
李日华大战鸡红11 小时前
FOC状态空间方程模型推导(学习记录)
python·学习·线性代数
kkkkkkkkkk_Z13 小时前
新手自学嵌入式 | 学习日记:异常与中断基础、i.MX6ULL裸机开发环境搭建、GPIO模块与点灯原理
学习
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(94):MemGen——在推理过程中动态生成并织入潜在记忆
论文阅读·人工智能·学习·开源·github
晓德14 小时前
0、LLM大模型安全学习系列(启)
学习·安全
Titan202415 小时前
MySQL索引学习笔记
笔记·学习·mysql
JWASX15 小时前
Java 转 go 学习 - kitex(5)
学习·golang
AOI小白新手上路15 小时前
VDMamba·AutoDL 复现笔记 · 学习笔记
笔记·学习
~kiss~15 小时前
LangGraph ~ 为图添加跨线程持久化
学习
xianrenli3816 小时前
水肺潜水学习
学习
凌云若寒17 小时前
BarTender提示#807错误:无法在拥有其他许可证的Licensing Service上激活节点锁定的 Professional 版许可证 的解决办法
运维·服务器·前端·学习·软件需求