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 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览