在 BlueNRG-LP 等 BLE 系统中,事件驱动是控制状态转移、数据交互和外设协作的基础。本文将深入讲解 BLE 协议栈中事件的来源、分发流程、处理结构与实际工程实践策略,帮助你构建稳定、可维护的 BLE 系统。
📦 一、BLE 事件的来源分类
BLE 协议栈中的事件严格来自协议栈本身的回调机制,主要包括以下几类:
类别 | 示例事件 | 来源说明 |
---|---|---|
GAP 事件 | HCI_LE_CONNECTION_COMPLETE_EVENT 、ACI_GAP_PAIRING_COMPLETE_EVENT |
连接、断开、配对等相关 |
GATT 事件 | ACI_GATT_SRV_ATTRIBUTE_MODIFIED_EVENT 、ACI_GATT_CLT_NOTIFICATION_EVENT |
GATT 层的读写、通知等 |
L2CAP 事件 | ACI_L2CAP_CONNECTION_UPDATE_REQ_EVENT |
连接参数更新相关 |
控制类事件 | HCI_HARDWARE_ERROR_EVENT 、ACI_HAL_FW_ERROR_EVENT |
控制器或协议栈异常 |
所有事件必须来自 BLE