cc2540与ios通信问题
本人使用cc2540与iphone进行通信。cc2540和iphone上烧写的是
http://processors.wiki.ti.com/index.php/File:IPhoneFileTransfer.zip
下面的代码。。根据上面的描述说发送速率能够达到1.5K/s 而我测试发现远远达不到1.5K/s,用XCODE调试发现iphone这边接收数据,接收2-3组数据(这些数据时间间隔为1-2ms)后就会隔100ms左右时间才能继续收到数据然后又接收2-3组数据又隔100ms。
是哪里没设置对么。。。。希望各位给点意见。。。谢谢
Hi Jun chen2,
这100ms是connection interval, 你可以通过缩短这个时间来达到提高数据流的目的.
苹果设定了一些规范, 只要符合这个规范就能修改这个interval.
具体可以参考这个帖子:
http://www.deyisupport.com/question_answer/f/45/t/18625.aspx
Yan:
感谢你的回复,我仔细阅读了你提供的帖子,你帖子中提到的修改方法,我也尝试修改了(其实TI提供的源代码就是按照你所说的那种方法)将DEFAULT_ENABLE_UPDATE_REQUEST设为TRUE
DEFAULT_UPDATE_MIN_CONN_INTERVAL 16
DEFAULT_DESIRED_MAX_CONN_INTERVAL 32
但是当我修改后,是无法与iphone建立连接的(当然TI提供的原代码也是无法与iphone建立连接)。
2、你能不能提供一份packet sniffer与cc2540建立连接的文档,,我一直停留在使用packet sniffer来抓广播数据,具体怎么使用它来抓2540发出来的gatt_notifation数据一直没有找到怎么操作。
谢谢
Hi jun chen2
1.请注意除了connection interval 以外, slave latency 不能大于4, supervision timeout不能大于6, 等等要求.
另外, IOS实际的connection interval一般都是要求30ms以上(如果我记得正确的话, 应该是).
2. 请参考文档: http://www.ti.com/lit/ug/swru187f/swru187f.pdf 一旦你连接成功抓到数据包以后, 解析是非常清楚的.
另外, 如果你要提高抓到数据包(除了广播包以外)的成功率, 最好是把广播固定在一个频道发送. 你可以在 perihperal.c, 里面void GAPRole_Init( uint8 task_id ) 函数里面gapRole_AdvChanMap 这个变量改成 37, 或38, 或39任意一个, 然后snffer软件里面也选择同一个channel就行.