FR8016H 芯片,MTU 能支持到多少?



  • 使用 ble_simple_peripheral 这个例子程序, 上位机使用 win10, 在 win10 上面通过 winrt 库函数调用 WriteValueWithResultAsync 接口写 Characteristic 的 value。
    发现小于等于 20 个字节没问题, 在 FR8016H 的 sp_gatt_msg_handler 回调函数中能看到 写消息。
    但是超过 20 字节就没动静了, 我换过多个 上位机调试程序, 都是超过 20 字节就不行了。

    但是通过 gatt_get_mtu 查看连接的 mtu 协商是正确的 247 字节, 在 win10 上也能看到 mtu 是 247 字节。



  • 问题解决了, 我使用的是样例程序中 simple_profile, 写入操作针对下面这个 CHAR2, 在下面定义中其中有个字段
    SP_CHAR2_VALUE_LEN 默认值是 20, 修改这个宏定义一下就可以写入大于 20 的数据。

    // Characteristic 2 Value
    [SP_IDX_CHAR2_VALUE] = {
    { UUID_SIZE_16, SP_CHAR2_RX_UUID }, /
    UUID /
    GATT_PROP_READ | GATT_PROP_WRITE, /
    Permissions /
    SP_CHAR2_VALUE_LEN, /
    Max size of the value /
    NULL, /
    Value of the attribute /