cc2540/1的BLE可否作到实时的传输数据
dear all:
我最近在做基于cc2540/1的BLE控制,要作到peripheral 每48ms发一帧20bytes 的控制数据;使用了char7的notify功能,
现在做到了48ms可以发送出数据,center也可以收到,但是center收到数据的周期却不是48ms,有挺严重的延时;
我在peripheral发次发notify时反转一次IO口,发送完再翻转一次,center有收到数据也翻转一次IO口;得到示波器的波形如附件.
有没有 人做过类似的东西,不知道cc2540/1能否做这种实时的不大的数据传输需求?
补充一下,我的时间间隔是:
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 6
// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 6
我也确认了一下,center接收到的数据没看到有丢帧的现像,只是常常一次接收到了两帧的数据.我在peripheral发送的数据中的一个字节自加1 ,
在center接收到的数据将这个字节用串口回报回来,如下是串口接收到的数据:
[2016:06:27:13:28:52]EB EC
[2016:06:27:13:28:52]ED EE
[2016:06:27:13:28:52]EF F0
[2016:06:27:13:28:52]F1 F2
[2016:06:27:13:28:53]F3 F4
[2016:06:27:13:28:53]F5 F6
[2016:06:27:13:28:53]F7 F8
[2016:06:27:13:28:53]F9 FA
[2016:06:27:13:28:53]FB FC
[2016:06:27:13:28:53]FD FE
[2016:06:27:13:28:53]FF 00
[2016:06:27:13:28:53]01 02
[2016:06:27:13:28:53]03 04
[2016:06:27:13:28:53]05 06
[2016:06:27:13:28:54]07 08
[2016:06:27:13:28:54]09 0A
[2016:06:27:13:28:54]0B 0C
[2016:06:27:13:28:54]0D 0E
[2016:06:27:13:28:54]0F 10 11 12
你48ms才notify一次,为什么要把connection interval设置的那么低呢?建议加大connection interval,比如15ms什么的试一下
谢谢你的回复,connection interval我其它的值也都试过了,没什么效果.
我也试了从center发数据给peripheral,48ms一次的话也大概会丢4帧
也就是说大概200ms发一次数据的话才会正常不丢帧,不知道你有没有遇到类似问题.谢谢!