傑理AC692X學習 BLE與APP端傳送與接收

2021-10-09 06:15:41 字數 2825 閱讀 2286

static

int(u16 handle, u8 *data, u16 len)

if(send_len)

else

return ret;

}/* 上訴實現是傑里的庫,函式被宣告成static,不去修改他的庫,封裝一新的函式出來方便其他地方呼叫 */

void

(u16 handle, u8 *data, u16 len)

接收介面

//++++++  aap傳送資料給mcu data就是資料報,注意最長只有20byte

static

void

(u16 handle, u8 *data, u16 len)

// printf("\n");

//+++++++將藍芽傳輸過來的資料通過串列埠傳輸出去

// for (u8 i = 0; i < len; i++)

// /* 省略 */

}

看完介面來分析一下前置條件吧。

傳送和接收中都有乙個引數 handle,ble協議是通過指定通道經行傳送接收的

// 檔案le_server_module.h下

/*//+++++藍芽通道選擇(uuid)

att_characteristic_ae02_01_client_configuration_handle

att_characteristic_ae04_01_client_configuration_handle

att_characteristic_ae05_01_client_configuration_handle

為notify控制代碼,-1則為韌體傳送控制代碼

*///

#define att_characteristic_2a00_01_value_handle 0x0003

#define att_characteristic_ae01_01_value_handle 0x0006

#define att_characteristic_ae02_01_value_handle 0x0008

#define att_characteristic_ae02_01_client_configuration_handle 0x0009

#define att_characteristic_ae03_01_value_handle 0x000b

#define att_characteristic_ae04_01_value_handle 0x000d

#define att_characteristic_ae04_01_client_configuration_handle 0x000e

#define att_characteristic_ae05_01_value_handle 0x0010

#define att_characteristic_ae05_01_client_configuration_handle 0x0011

#define att_characteristic_ae10_01_value_handle 0x0013

常用的就是注釋中的幾個notify通道,用於建立鏈結。對應通道號 -1 就是傳送接收通道,從注釋的字面就可看出其功能。

sdk_cfg.h 開啟ble通道

/* bt_ble_en 選上 */

#define ble_bredr_mode (bt_bredr_en)

//資源充足的情況,tws 可以開啟ble

#else

#define ble_bredr_mode (bt_bredr_en|bt_ble_en)

//資源問題,開了ble,不能開啟一拖二//(bt_bredr_en|bt_ble_en)//資源問題,開了ble,不能開啟一拖二

#endif

ble鏈結成功和ble斷開鏈結兩個訊息

//+++++++ ble 連線成功 

case hci_event_le_meta:

switch

(hci_event_le_meta_get_subevent_code

(packet)

)break

;case hci_subevent_le_connection_update_complete:

connection_update_complete_success

(packet)

;break;}

break

;//++++ble 斷開連線

case hci_event_disconnection_complete:

log_info

("---ble disconnect!\n");

ble_test_flag =0;

con_handle =0;

att_send_init

(con_handle)

;set_ble_work_state

(ble_st_idle)

;/* gap_advertisements_enable(1); */

printf

("hci_event_disconnection_complete : %0x\n"

, packet[5]

);set_adv_enable(0

,1);

connection_update_cnt =0;

//自己新增的藍芽連線狀態flag

ble_connect_status -

= data_ble_status_connect;

break

;

傑理AC692X 基本配置

ac692x系列晶元一般用來做音箱類產品。支援的功能 bt,music,aux,fm,rec,rtc,echo。下面說一下常用模式的基本配置。藍芽的後台模式,韌體過大可以關閉。define bt background en 0藍芽ble數傳功能,韌體過大可以關閉。define ble bredr m...

傑理AC692X 常用模式介紹

常用模式介紹 692x系列的sdk支援多種模式切換,以下是一些常用的模式介紹,rtc模式和錄音模式在此不講解。用的最多的應該是藍芽模式,藍芽模式主要由以下巨集定義進行協議選擇 登出掉的是ble,只選擇了我們常用的edr,即經典藍芽,用於傳輸音訊。藍芽模式主要的開發 都在一下資料夾下 大部分情況下我們...

傑理AC692X系列 RTC筆記(11)

1.如果 lowpower osc type 選擇用 bt osc,導致執行set lowpower keep 32k osc flag 0 函式語句,會導致 32.768k 不起振,導致 rtc 時鐘不跑,把形參 0 改為 1 即可。2.ac692x sdk release v2.2 程式 rtc...