微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2541连接某些Android手机后不能广播了。

cc2541连接某些Android手机后不能广播了。

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

我的工程是1.4.2版本,simpleBLEPeripheral, cc2541,使能了PLUS_BROADCAST宏。当使用ios手机连接后,设备可以正常发送ADV_NON_CONNECT的广播包,也能正常返回ScanResp,但是使用某些Android连接后设备就不能正常广播了,也没有回复ScanResp,但有些android手机连接后还是可以继续广播的。抓了正常的和不正常的空中包,连接部分的命令交互如下。

正常的(连接之后还可以继续广播):

不正常的(连接之后不能继续广播):

不知问题发生在设备端还是手机端,谢谢了!

不正常情况下 ack status出问题了,unexp.sn--------Unexpected Sequence number

建议参考下这边: https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/343336

Thanks Viki. 我会先找找我代码里面是否也有link中描述的OSAL memory申请和释放的问题。

好的,起码可以排除下产生问题的原因

Hi Viki,

我仔细检查了代码中的osal_mem_alloc和osal_mem_free的调用,没有问题,而且我基本上把我自己应用的代码也都去掉了(去掉后就没有osal_mem_alloc和osal_mem_free的相关代码调用了)还是不行,之后我又把INT_HEAP_LEN宏定义的大小设置为3584(之前是3072),问题还是没有解决,这次又出现了如下图所示的Unexp. NESN的Ack Status,这是为什么呢?多谢了!

BR

lou

Viki, 另外我发现在失败的几个case里,connect_req中的Interval的值都比较大,而成功的时候Interval的值较小,这个Interval是什么意思呢?谢谢。

从这个帖子里找到了答案:

http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/18625/62130.aspx#62130

原因是我的设备端把connect max和min的interval设置成了相同的值,导致android手机不能正常和设备通信了。改成合理的值后就没有问题了,还是谢谢了!

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

网站地图

Top