【BAQ014】如何解决QCC300x开启uart接口后无法关机的问题

更新日期:2019-03-13
蓝牙

ADK_QCC300x.WIN.1.0.167的默认sink程序中,如果我们将transport口改为Raw(使用uart功能所必须),则会出现长按power键无法关机的情况。

造成此问题的原因是,在host interface设置为uart时,默认PIO8RTS低电平有效,无数据时为高。而在config中,PIO8被设置成了Logical Input ID2

所以,当无数据时,Input2一直被拉高,这个时候,如果我们在按下Vreg(电源开关)键,则相当于PIO8Input2)和Vreg同时被按下了,也就是没有单独按下Verg。如果有Input2+Vreg同时触发的事件,自然就触发该事件啦。为了验证这个,我们可以查看一下user evert,确实有一个事件是Input2+Verg同时按下触发的:

这个事件是让设备进入Peer配对状态,同时,我们可以看到在LED status状态下,有一个Connectable/Discoverable to Peer事件是LED0LED1交替闪烁,这个也与我们看到的LED事件相符合。

所以,为了避免这个情况,我们可以将有关Input2的相关事件改掉,或者,干脆直接改Translation Table,将PIO8改成其他的就好了。这里我实际测试了一下,改成PIO10是可以的。

不管怎么改,总之是PIO8冲突造成的,改掉就好了。