最近在进行 CC2541蓝牙广播关闭操作会出现关闭广播不成功现象,主要操作需要注意两个问题:
在进行开关操作的API函数操作的时候,每次进行开关操作在系统内部实际上是按照任务的方式处理的,每一个任务处理都需要时间处理,所以代码中切记不要出现【执行完关操作后,又立马执行开操作】或者【执行完开操作后,又立马执行操作】
在我的实际产品设计,需要做低功耗的设计,其中对广播的做低功耗的处理,有两种方式可以选择(【A】:直接关闭广播(这种方式是在广播处理section中可以把功耗做到最省,本人也是因为通过这种方式出现广播关闭不成功的现象)、【B】:降低广播的频率(这种方式其实也可以做到很好的低功耗效果,但是会出现周期性功耗波动)),其中【A】方式中,一般情况广播关闭操作会成功,但是会存在一种很特殊情况,在同一时刻(同一时刻很重要)打开多个蓝牙设备广播时,一段时间设备不使用进入睡眠或者低功耗状态关闭设备的广播时,会出现部分设备关闭不成功的现象(基本该现象可重复性出现)。导致这种问题是由于蓝牙广播信道通信阻塞(蓝牙设备在同一信道同一时刻进行广播)。