W801藍牙發送數據到手機只有第一次有效以及如何修改W801的MTU

發布於 2022-04-17 12:46:38

【1】嘗試在手機端使能indicate後,返回若幹條信息,以及在程序對藍牙命令處理後返回若幹條消息,但是發現只有第一條消息能成功接受,其他消息則無法接受,實驗結果下圖所示。
5.png
6.jpg

【2】由於從手機APP往藍牙發送的數據較長,手機和藍牙交換MTU後,發現W801的MTU最大為256,是否能夠通過修改程序的中某些設置來提升W801的MTU?

查看更多

關注者
0
被浏覽
2.8k
Mrzhao
Mrzhao 認證專家 2022-04-17
一個嵌入式愛好者。CSDN主頁:https://blog.csdn.net/qq_37280428?spm=1011.2415.3001.5343

你進入tls_ble_server_demo_api_send_msg函數,做如下修改:

int tls_ble_server_demo_api_send_msg(uint8_t *data, int data_len)
{
    int rc;
    struct os_mbuf *om;
    
    //TLS_BT_APPL_TRACE_DEBUG("### %s len=%d\r\n", __FUNCTION__, data_len);
    //if(g_send_pending) return BLE_HS_EBUSY;

    if(data_len<=0 || data == NULL)
    {
        return BLE_HS_EINVAL;
    }
    
    om = ble_hs_mbuf_from_flat(data, data_len);
    if (!om) {
        return BLE_HS_ENOMEM;
    }
    rc = ble_gattc_indicate_custom(g_ble_demo_conn_handle,g_ble_demo_attr_indicate_handle, om); 
    /*
    if(rc == 0)
    {
        g_send_pending = 1;
    }
    */
    return rc;
}
1 個回答

撰寫答案

請登錄後再發布答案,點擊登錄

發布
問題

分享
好友

手機
浏覽

掃碼手機浏覽