多从机MultiCentral例程下,在接收到从机数据(从机发送数据频率20ms9个字节)后,我会定时(6S)向从机发送一帧数据(6个字节)。发送几次之后,就不会再发送了。经过排查得知,发送数据函数返回0x16事务挂起,接着又返回0x17上一次事务超时。想知道这会是什么原因引起的,该如何解决。
在主机与从机连接的例程中,从机会默认给主机发送0x88的数据,主机会默认给从机发送0x5A的数据(只发送一次)。你这里的操作应该是主机先接收从机数据,接收到数据后主机再发送数据给从机。
主机端在Receive noti后,调用TMOS任务进行发送的处理。
从机端接收主机数据也是同理处理。
是的,我就是在接收到从机数据后就向从机发送数据。其实就是就是按照例程修改的,只不过例程是发送一个字节,我需要发送多个字节。
只是在发送几次之后,就不再发送了。
打印GATT_WriteLongCharValue的返回值为0x16/0x17。
麻烦帮忙看一下!!
1、建议在例程上修改,默认的程序是发送1个字节,你也先尝试1个字节验证是否出问题,然后逐次增加;
2、增加大连接间隔
BLE广播间隔和连接间隔(CH573) - SweetTea_lllpc - 博客园 (cnblogs.com)
3、增大MTU
https://www.wch.cn/bbs/thread-89965-1.html
根据您提供的思路,我直接使用MultiCentral例程进行测试。由于从机是一个透传模组,所以在GATT服务部分做了一些修改。但是还是一样的现象,发送几次之后,也是不再继续发送,打印GATT_WriteLongCharValue的返回值为0x16/0x17。
麻烦帮我看一下,该如何解决。
目前使用的是什么版本的库,建议使用最新版的库进行测试。
我看打印的显示是V1.3.0版本的,最新的版本是1.5的吧,8.31发布的是吧。
不太清楚你这边使用的是哪款芯片,可以对应下载以下链接的开发包,可以替换lib库,也可在新例程上进行修改。
https://www.wch.cn/downloads/CH573EVT_ZIP.html