一:BLE蓝牙程序工程结构
1、main主函数
2、板子设置(按键、灯等)
3、Startup文件夹 (芯片启动函数)
4、BLE文件夹(蓝牙服务代码)
5、drivers文件夹(外设驱动函数代码)
6、Libraies文件夹
二:蓝牙协议的分层
1、应用层
警告通知、血压测量仪、心率、电池等等。
2、主协议层
①通用访问规范(GAP 管理广播和连接时间相关参数)
角色(集中器角色、外围设备角色)
广播(广播间隔(20ms-10.24s)、广播数据包(31b、扫描回应(31b)))
扫描(扫描间隔、扫描窗口)
发起
连接(连接间隔 7.5ms-4s)
传输数据最多20b
②通用属性配置文件(GATT)
角色(GATT服务器、GATT客户端)
GATT服务器
---属性(包含句柄、UUID、值)
---特性(至少两种属性:用于声明、用于存放特性的值)
---描述符
---服务
---profile(数据配置文件)
3、控制层
主机控制器、链路层、物理层
源码分析:
main:
初始化定时器(创建一个定时器实例)
初始化外设
协议栈初始化
设备管理初始化
GAP参数初始化
广播初始化
服务初始化
更新过程初始化
应用定时器开始
广播开始