因此,在嵌入式系统上工作时,我有一个USB驱动器,用于为设备充电以及读取一些数据。
使用usbd_core.c
我可以查看状态,
4
(USBD_STATE_SUSPENDED
)。 1
(USBD_STATE_DEFAULT
)。 1
(USBD_STATE_DEFAULT
)。它应该是这样还是我遗失了什么?
我还尝试了USBD_Stop()
和USBD_Start()
,看看它是否有所不同,但当我断开连接时状态仍然没有改变。
有什么想法吗?
答案 0 :(得分:1)
USB规范定义了六种USB设备状态:
已附加:设备已连接至USB,但未通过USB供电。
已加电:设备已连接至USB并已通电,但尚未收到任何重置请求。
默认:设备已连接到USB。它已通电并重置,但没有为其分配唯一的地址。
地址:设备已连接到USB,已启动并重置,并且已为其分配了唯一的地址。
已配置:设备已处于地址状态并已配置。它没有处于暂停状态。
已暂停:已连接并配置设备,但至少3毫秒未在总线上检测到任何活动。
正如您所看到的,暂停需要附加和配置的设备,但是请注意,这些状态的所有都需要连接的设备,并且显然不能用于暗示物理分离设备。
断开连接是来自USB控制器的低级事件 - 您的API可能会为此类事件提供回调。