Firefly开源社区

打印 上一主题 下一主题

关于git的firmware

61

积分

0

威望

0

贡献

游客

积分
61

关于git的firmware

发表于 2015-8-20 20:45:44      浏览:5165 | 回复:3        打印      只看该作者   [复制链接] 楼主
在官网的维基上下载git上的代码(git clone https://TeeFirefly@bitbucket.org/T-Firefly/FireBLE.git)发现firmware的工程烧到板子上能广播,但是每次手机都显示timeout interrogating the peripheral.但是之前直接在官网上下载固件又没有问题?还有一个问题就是为什么lightblue上搜到firmware是1 service 但进去却有多个服务(有qpps和proxr)?
回复

使用道具 举报

61

积分

0

威望

0

贡献

游客

积分
61
发表于 2015-8-20 20:48:00        只看该作者  沙发
补充下,官网上直接下载出场固件的bin烧进去能正常连接,但是git上的会连接超时
回复

使用道具 举报

400

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
400
QQ
发表于 2015-8-21 15:11:11        只看该作者  板凳
本帖最后由 安安 于 2015-8-21 15:17 编辑

1.lightblue连接失败:这个是由于连接参数设置不当的原因,因为lightblue对连接参数的要求较高。查找并修改如下地方代码
  1. ///GAP Peripheral Preferred Connection Parameter - 8 octets
  2. #define GAP_PPCP_CONN_INTV_MAX                              0x00C8
  3. #define GAP_PPCP_CONN_INTV_MIN                              0x0064
  4. #define GAP_PPCP_SLAVE_LATENCY                              0x0000
  5. #define GAP_PPCP_STO_MULT
复制代码

将GAP_PPCP_CONN_INTV_MAX 和 GAP_PPCP_CONN_INTV_MIN两个参数改小
  1. #define GAP_PPCP_CONN_INTV_MAX                              0x0012
  2. #define GAP_PPCP_CONN_INTV_MIN                              0x0008
复制代码

2.只发现一个服务:这个可以自己去看一下广播设置函数,在广播响应函数中是会把包含的服务都发送出去的。而由于开启了 BLE_QPP_SERVER服务,广播到此服务UUID后就直接return了,所以会造成只有一个服务。你可以尝试修改把所有服务都显示出来。
  1. #if BLE_QPP_SERVER
  2.     if (srv_flag & BLE_QPPS_SERVER_BIT)
  3.     {
  4.         app_env.scanrsp_data[0] = ATT_UUID_128_LEN + 1;
  5.         app_env.scanrsp_data[1] = GAP_AD_TYPE_MORE_128_BIT_UUID;
  6.         memcpy(app_env.scanrsp_data + 2, QPP_SVC_PRIVATE_UUID, ATT_UUID_128_LEN);
  7.         return (ATT_UUID_128_LEN + 2);
  8.     }
  9. #endif
复制代码



没个性,不签名!
回复

使用道具 举报

61

积分

0

威望

0

贡献

游客

积分
61
发表于 2015-8-21 19:09:31        只看该作者  地板
搞定啦,谢谢大神:lol
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表