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...