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

相关推荐
彧azz22 分钟前
Java学习记录:判断语句
java·笔记·学习·算法
M78佐菲1 小时前
ARM学习笔记(四)
linux·arm开发·笔记·嵌入式硬件·学习
昌原的儿子LEO1 小时前
i.MX6ULL 裸机开发 C 语言驱动与 BSP 工程管理学习总结
linux·arm开发·学习
kkkkkkkkkk_Z1 小时前
单片机|学习日记:单片机底层架构与寄存器操作全解析
linux·笔记·单片机·学习·51单片机
逐辰十七2 小时前
2023级河海大学自动化计算机控制考试题目
学习
一只路人甲11 小时前
使用AI快速学习
学习
传奇开心果编程12 小时前
【Rust入门练中学】第2课:变量、可变性与常量
开发语言·学习·rust
边境悍匪14 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring
Gyr015 小时前
浅刷了一遍51CTO软考题库客观题及其解析(4)
学习·软考·知识点·信息安全工程师
是隼人15 小时前
buuctf-pwn [NewStarCTF 2023 公开赛道]stack migration(64位栈迁移)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门