dear all:
我最近在做基于cc2540/1的BLE控制,要作到peripheral 每48ms发一帧20bytes 的控制数据;使用了char7的notify功能,
现在做到了48ms可以发送出数据,center也可以收到,但是center收到数据的周期却不是48ms,有挺严重的延时;
我在peripheral发次发notify时反转一次IO口,发送完再翻转一次,center有收到数据也翻转一次IO口;得到示波器的波形如附件.
有没有 人做过类似的东西,不知道cc2540/1能否做这种实时的不大的数据传输需求?
yiwi hung:
补充一下,我的时间间隔是:
// 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
Jun He4:
回复 yiwi hung:
你48ms才notify一次,为什么要把connection interval设置的那么低呢?建议加大connection interval,比如15ms什么的试一下
yiwi hung:
回复 Jun He4:
谢谢你的回复,connection interval我其它的值也都试过了,没什么效果.
我也试了从center发数据给peripheral,48ms一次的话也大概会丢4帧
也就是说大概200ms发一次数据的话才会正常不丢帧,不知道你有没有遇到类似问题.谢谢!