软件方式如何检测USB DEVICE已断开

自供电,DEVICE模式  ,看了所有寄存器没发现可以用来检测的标志位(HOST模式就有)。

当然用硬件检测电压方式是可以的,但如果能用软件更好 

您好,如果您是设备模式的话,您软件上可以看是否还有SOF中断,如果没有,那就判断设备断开,这个只是变相的方式去判断。最直接的肯定还是去判断D+,D-。


你好,想请教下大神最后用了什么办法来检测DEVICE的断开


您好,上述的方法理论上也是可以检测是否断开连接的,能够进SOF中断表示已连接上;设置一个定时器,距离上次SOF中断超时一定时间判断为断开。

一般枚举进行到最后一步SET_CONFIG,可以判断为设备连接;断开连接时会进“挂起”,故也可以在解析setup包和判断挂起的位置判断连接和断开。注意枚举过程中USB总线上也会有两次reset,会进设备“挂起”case,建议以判断设备接入为准。

image.png

image1.png


只有登录才能回复,可以选择微信账号登录