微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 为什么添加新的特征之后,需要配对后才能读写

为什么添加新的特征之后,需要配对后才能读写

时间:10-02 整理:3721RD 点击:

cc2541,使用的是 SimpleBLEPeripheral 工程改写的,本来服务里有5个特征值,前面4个都是可以直接读或者写的,为什么第五个特征值需要配对后才能读?而且我自己新添加了一个特征值6,也是需要输入配对密码后才能读写,在新添加特征值时候,我把特征值5和6的一些设置和其他的几个比较,,没有发现什么不同的;为什么5和6就需要配对才可以?是有其它地方有特别设置吗?  ?求解

我是按照附件中的步骤添加的,以下是附件

配对跟读写profile应该没有直接的关系。

admsadm 
你可以说的详细点吗?
我使用的是SimpleBLEPeripheral 这个示例工程,然后用手机app连接,手机使用的是iphone4s,装的app是appstore中下的 LightBlue。前面3个特征值都可以直接多或者写,第4个属性是通知,第5个读的时候app会弹出对话框要求输入密码配对。
你的意思是说这是手机app的问题?但是我用安卓的相关app试了也是同样的需要配对 

检查下是否是特征值的访问属性被你修改了。

特征值的访问属性有:可读、可写、认证可访问。。。

tim yuan,

第五个profile的属性能贴出来看看吗

// Simple Profile Characteristic 5 Properties
static uint8 simpleProfileChar5Props = GATT_PROP_READ;

下面这个数组里面:

static gattAttribute_t simpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED] 

 // Characteristic 5 Declaration
 {
    { ATT_BT_UUID_SIZE, characterUUID },
    GATT_PERMIT_READ,
    0,
    &simpleProfileChar5Props
 },

 // Characteristic Value 5
{
   { ATT_BT_UUID_SIZE, simpleProfilechar5UUID },
   GATT_PERMIT_AUTHEN_READ,
   0,
    simpleProfileChar5
 },

 // Characteristic 5 User Description
 {
  { ATT_BT_UUID_SIZE, charUserDescUUID },
  GATT_PERMIT_READ,
  0,
  simpleProfileChar5UserDesp
},

这些都是 SimpleBLEPeripheral  工程里面的,没有改过,只知道第一行里表示特征值时只读的属性

数组表里面的三项中,第一项表示特征值可见,后面两个就不知道是什么意思了

这不明显了吗?

 GATT_PERMIT_AUTHEN_READ  就是认证可读(就是说,你要想访问它,必须先通过配对)

GATT_PERMIT_READ 才是可读~

谢谢 shaokai Lin ,我粗心了,

还有一个问题,使用ios的light blue去连接没有问题,但是使用安卓的BLE Scanner app去连接,会连上一下然后立即就断开了,手机这边不退出,2541再次开启广播才能够连接上。

推测是手机这边扫描请求和连接请求连续发送,会导致连接上就马上断开(可能是因为时间间隔还是什么?);而第二次连接,只是发送了连接请求,所以连接上了。

不知道这个推测是不是正确的,如果是,应该到哪一部分去找问题?

2541这边还是SimpleBLEPeripheral  这个工程改的

《BLE Scanner app》是你自己写的应用程序吗?

可以尝试再Peripheral端打印出实际的连接间隔 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top