蓝牙是为了能够通信,想要通信就必须遵守一定的规则, Profile 就可以理解为相互约定的规则,因为每个协议栈demo 都会有一个Profile 与之对应, 我们这里的SimpleBLExxx 对应的就是simpleGATTprofile,大多数profile 都是蓝牙组织SIG 规定好的,但是,如果, 我们的项目不涉及到跟第三方的设备进行互联, 那么我们完全可以自定义profile,例如, TI的SimpleBLEPeripheral 从机和SimpleBLECentral主机工程, 就是自定义的profile, 0xfff0~0xfff4。
协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发;协议栈是协议的具体实现形式,通俗的理解就是用代码实现的函数库,以便于开发人员调用。
从机里包含了一个叫做profile 的相关代码,这个profile决定了从机的功能。例如防丢器、血压仪、心率计等均是蓝牙组织规定的profile。
BLE 规范中定义了GAP(Generic Access Profile)和GATT(Generic Attribute)两个基本配置文件。
协议中的GAP 层负责设备访问模式和进程,包括设备发现,建立连接,终止连接。初始化安全特征和设备配置。
协议栈中的GATT 层用于已连接的蓝牙设备之间的数据通信。