許多初學者在接觸 CC2540 藍牙模組與 Android 手機進行透傳開發時,面臨代碼流程不清、數據存儲位置不明、接收機制模糊等問題。即便閱讀代碼數週,仍難以建立完整的認知框架,網上資料多為片段式說明,缺乏系統性指導。
BLE 設備與 APP 建立連接後,數據交互主要包含三種模式:
調用 GATT 寫入特徵值操作,對應 CC2540 端的回調函數:
static bStatus_t SimpleBLEPeripheral_WriteAttrCB(
uint16 connHandle,
gattAttribute_t *pAttr,
uint8 *pValue,
uint8 len,
uint16 offset
) { /* 處理接收到的數據 */ }
關鍵點:pValue 指向接收數據緩衝區,len 為數據長度。此處應解析協議並執行相應業務邏輯。
APP 發起讀取請求,觸發從機的讀取回調:
SimpleBLEPeripheral_ReadAttrCB() { /* 準備並返回數據 */ }
從機需在回調中填充待發送數據到對應特徵值屬性中。
使用 Notify(無需確認)或 Indicate(需 APP 確認)機制:
GATT_Notification() 或 GATT_Indication() 發送數據SimpleBLEPeripheral 例程