CH573做主机 连接上从设备后,遇到了一些问题,麻烦帮忙看看

我现在是用573做主机,与别的从机连接时遇到的问题

1、调用查找主服务UUID句柄GATT_DiscPrimaryServiceByUUID,经常会没有收到任何回调,好像没找到这个服务一样,导致不能继续查找子服务UUID

image.pngimage.png

2、有时候有回调后,查找子服务UUID时,使用GATT_ReadUsingCharUUID查找,会返回错误码0x02,我查看好像是无法读取属性,用GATT_DiscCharsByUUID才行,我在网上看,用这个是要将句柄+1使用?


3、查找到UUID,可以进行发送时,使用GATT_WriteLongCharDesc 这个函数发送,一直会返回

pMsg->method=1

pMsg->msg.errorRsp.reqOpcode = 0x18

Write Error: 0x0d

这个是什么问题呢?

4、有时候连接一段时间后,RSSI值,会变成RSSI:-0dB

image.png

5、主机和设备连接一段时间,会自动断开,然后又重连,设备和手机连接时,是不会断开的,这个是什么问题?

image.png

如果方便的话可以贴一个与手机连接的截图,看看从机的一些配置信息。


这样吗?

1319e583c5b3129b888f22870e91585.jpg


从从机与手机的连接截图来看,uuid是与我们主机默认传入的uuid是不相同的,将SIMPLEPROFILE_SERV_UUID修改为feee,

SIMPLEPROFILE_CHAR1_UUID修改为2AA3后看看是否能够获取handle。


这两个地方是改过来的,SIMPLEPROFILE_CHAR1_UUID这里,我用的是2AA2,他也不是每次都不进入查找子服务UUID,不过是经常出现没有回调的情况

image.png

image.png


如果使用的是GATT_ReadUsingCharUUID方式获取,那么需要传入SIMPLEPROFILE_CHAR1_UUID修改为2AA3,如果流程有问题的话建议使用最新的例程,只改两处的uuid试试,正常而言流程是不会有问题的,一般都是uuid有误有些if判断没过。


只有登录才能回复,可以选择微信账号登录