加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用usbd_core.c检测何时断开USB设备

发布时间:2020-12-16 07:12:44 所属栏目:百科 来源:网络整理
导读:因此,在嵌入式系统上工作时,我有一个USB驱动器,用于为设备充电以及读取一些数据. 使用usbd_core.c我可以查看状态, 当没有连接时,状态为4(USBD_STATE_SUSPENDED). 一旦连接,状态就会变为1(USBD_STATE_DEFAULT). 但是当我断开它时,状态不会改变,它仍然是1(USBD
因此,在嵌入式系统上工作时,我有一个USB驱动器,用于为设备充电以及读取一些数据.

使用usbd_core.c我可以查看状态,

>当没有连接时,状态为4(USBD_STATE_SUSPENDED).
>一旦连接,状态就会变为1(USBD_STATE_DEFAULT).
>但是当我断开它时,状态不会改变,它仍然是1(USBD_STATE_DEFAULT).

这应该是这样还是我错过了什么?

我还尝试过USBD_Stop()和USBD_Start()以查看它是否有任何区别但是当我断开它时状态仍然没有改变.

有任何想法吗?

解决方法

USB规范定义了六种USB设备状态:

>附件:设备连接到USB但不通过USB供电.
>供电:设备已连接到USB并已通电但尚未收到任何重置请求.
>默认:设备连接到USB.它已通电并重置,但没有为其分配唯一的地址.
>地址:设备连接到USB,它已通电并复位,并为其分配了唯一的地址.
>已配置:设备已处于地址状态并已配置.它不处于暂停状态.
>已暂停:设备已连接并已配置,但在总线上未检测到任何活动至少3 ms.

如您所见,暂停需要连接和配置的设备,但是请注意,所有这些状态都需要连接的设备,并且显然不能用于暗示物理分离的设备.

断开连接是来自USB控制器的低级事件 – 您的API可能会为此类事件提供回调.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读