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()

相关推荐
从零开始的代码生活_2 分钟前
C++ list 原理与实践:双向链表、迭代器与简化实现
开发语言·c++·后端·学习·算法·链表·list
程序员小八7771 小时前
从 0 学习 MySQL 索引——7 大核心精讲
android·学习·mysql
渣渣灰飞2 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第六章:Redis 实现登录 Token
学习·mysql·缓存
渣渣灰飞2 小时前
MySQL 系统学习 第六阶段:Redis + 缓存 + 高并发设计 第五章:缓存穿透、缓存击穿、缓存雪崩
学习·mysql·缓存
念何架构之路2 小时前
Docker 容器状态机 学习
java·学习·docker
你有我备注吗2 小时前
SQL学习之查询
java·sql·学习
从零开始的代码生活_2 小时前
C++ stack、queue 与 priority_queue:容器适配器原理与实战
开发语言·c++·后端·学习·算法
铅笔侠_小龙虾2 小时前
Rust 学习(6)-所有权规则、移动语义、Clone 与 Copy
python·学习·rust
kiss strong2 小时前
AI学习-langchain
学习·langchain
灵性(๑>ڡ<)☆3 小时前
Java学习笔记--面向对象高级(多态)
笔记·学习