TI论坛
直播中

h1654155275.5954

7年用户 207经验值
私信 关注
[问答]

如何利用CC2640R2F连接多个从机?

使用CC2640R2F LaunchPad,BLE5Stack里的multi_role例程,经过修改使主机连接2个从机,从机用GATT_notification直接发数据到主机,当第二个从机发送数据时,两个从机就都停止数据发送了,有几个疑点请帮忙确认:
1,连接间隔80ms,从机建立连接后每隔80ms定时调用GATT_notification发送240个字节数据到主机。单独连接每个从机数据都可以上来,按道理两个从机发数据只是在各自的connect event里,使用2MPHY的话,发送时间也就1ms,时间上没有冲突的可能。但有一点不确定,就是L2CAP层是不是将240个字节分包为12个20字节分别发送的?而我已经将l2cap.h里的的L2CAP_MTU_SIZE从23改为243了,是否意味着240字节可以一次发送?
2,对于主机来说,两个从机的connHandle分别为0x0000和0x0001;对于从机来说,两个从机端的connHandle都是0x0000,是否是因为connHandle相同导致的冲突?但是强制将connHandle写为0x0001,数据就发不出去了。
3,如果从机通过写Simpleprofile_SetParameter调用GATTServApp_ProcessCharCfg方式发数据,主机发送noti使能后就卡死了,感觉是事件太多处理不过来了。有个有没有能够处理较多数据的例子?

回帖(5)

刘龙

2019-10-31 07:18:52
Viki Shi,感谢您的答复,不过这个链接失效了,是否有更新的链接?
另外有个困扰很久的问题,5.0协议栈底层还是会将长数据包分为20字节每次发送,这个有办法修改吗?MTU交互之后难道不是按照协商好的MTU一次传输吗?如果还要分包的话,4.2以后版本的链路层255octets payload不是没有意义了?
举报

李子月

2019-10-31 07:25:09
主机和从机都用的cc2640R2吗?
                                                                         
提供德州仪器蓝牙和射频cc2540,cc2541,cc26系列,cc13系列脱机烧录工具。



 
举报

李子月

2019-10-31 07:39:24
从机不能同时发送数据给主机,会产生冲突的!
                                                                         
提供德州仪器蓝牙和射频cc2540,cc2541,cc26系列,cc13系列脱机烧录工具。



 
举报

刘龙

2019-10-31 07:49:42
引用: 60user20 发表于 2019-10-31 07:39
从机不能同时发送数据给主机,会产生冲突的!
                                                                         
提供德州仪器蓝牙和射频cc2540,cc2541,cc26系列,cc13系列脱机烧录工具。

主机和从机都是CC2640R2F,如果每次发20字节两个从机的数据都可以收到,多于20字节由于分包发送,主机收到的20字节以后数据会出现错乱或丢包。如果每次发的数据再大一些,主机和从机都会卡死。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分