方法 ble_gattc_indicate_custom 尾部 ble_gattc_process_status 释放了, 或者说是修改了状态
我曾经碰到过的是 wm_ble_uart_if. c 中 RING_BUFFER_SIZE 太小, 导致不能全部发送
wm_bt_util. c
你可以在wm_ble_server_api_demo. c中 ble_server_indication_sent_cb, 加上几句代码, 验证是否存在环形 buff 缓冲区小了的问题.
个人认为能解决办法有几个:
1, 适当增加环形 buffer 的长度 (最简单, 前提 ram 足够, 数据包长度足够单一, 固定)
2, 自己分包发送, 收到返回, 再发送下一包. (一问一答, 稳健, 但速度慢)
3, 实现 demo 的 event 并注册, 发送成功后, 写入下一包. (未验证)
看没人回复, 我提供下自己的思路, 希望对你有帮助
只跑示例代码, 设置 mtu, 是能超过 23 字节的.
没碰到过, mtu 我设置的是 256, 还用做了 ota 升级
代码没看出啥问题, 唯一跟示例有区别的是 rev_data, rev_data 缓冲区大小对吗? 只打印长度试试?
问 ubuntu 下如何下载程序到开发板