• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > cc2541有什么办法定位BLE不广播的原因?

cc2541有什么办法定位BLE不广播的原因?

录入:edatop.com     点击:
用cc2541做了个数据记录产品,APP设置了参数后2541调用GAPRole_TerminateConnection断开连接,开始将采集回来的数据保存到2541的flash(这段时间ble应在广播状态),至采集结束自动关机(2541进入低功耗状态)。但是现在刚进入采集状态时可以搜索的到ble的广播,在隔一段不确定的时间后(不一定在什么时候,似乎是随机的)就会搜索不到ble的广播,但数据采集还在继续直至正常结束。
在采集的这段时间里只有两个事件在运行:Notify发送数事件(此时有只是在轮询,并没有Notify)和数据记录的事件。用户程序并没有调用蓝牙相关的API,flash数据记录函数有用到HAL_ENTER_CRITICAL_SECTION、HAL_EXIT_CRITICAL_SECTION屏蔽中断和更改MEMCTR寄存器操作。
怀疑可能和中断(便不可屏蔽中断?)有关,不确定,也许是其他问题。ble协议栈封装起来了也不好跟踪下去,请问有什么办法定位BLE不广播的原因?

理论上,CC2541上最基本的的状态集应该是 开机->开始广播->如果被连接,则退出广播状态,进入连接状态->连接断开自动进入广播状态 这样变化的

你的这个问题我也怀疑程序跑到其他地方去了,建议你调试的时候还是把串口引出来。
在广播连接断开,采集开始结束,周期的中断内设置串口输出一串数据,这样比较容易定位程序跑到哪里去。
至于下面的协议栈,使用TI最新的协议栈,协议栈不会有问题。也不用在这上面纠结。

上一篇:cc2640主机已知从机mac地址直接建立连接可以吗?
下一篇:CC2530 P2模式下接收广播包丢失?

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图