[STM32F1] stm32f10x的usb怎么判断是否连上电脑USB口

[复制链接]
1647|44
 楼主| ousj 发表于 2021-12-7 23:49 | 显示全部楼层 |阅读模式
stm32f10x的usb怎么判断是否连上电脑USB口
stly 发表于 2021-12-7 23:51 | 显示全部楼层

楼主详细说说怎么回事啊,这么说太笼统了
 楼主| ousj 发表于 2021-12-7 23:54 | 显示全部楼层
现在用stm32f10x的usb做虚拟串口,当连接上或断开电脑端usb口后,是否有相应的状态判断函数进行判断连接成功或断开连接?
 楼主| ousj 发表于 2021-12-7 23:55 | 显示全部楼层
自己搜索了下,应该是这个bDeviceState变量 如果bDeviceState = UNCONNECTED代表断开连接
typedef enum _DEVICE_STATE
{
  UNCONNECTED,
  ATTACHED,
  POWERED,
  SUSPENDED,
  ADDRESSED,
  CONFIGURED
} DEVICE_STATE;
不知道是否正确
 楼主| ousj 发表于 2021-12-7 23:57 | 显示全部楼层
测试发现 上电初始化bDeviceState = UNCONNECTED
但连接电脑后 会变bDeviceState = ADDRESSED ,如果拔掉USB线,bDeviceState = ADDRESSED ,无法探测是否断开usb
jlyuan 发表于 2021-12-7 23:58 | 显示全部楼层
不同芯片usb库有区别,看一下断开usb 的相关代码.
sadicy 发表于 2021-12-8 15:26 | 显示全部楼层
标志位,或者可通信
zwll 发表于 2021-12-8 19:21 | 显示全部楼层

电脑不能识别吗?
stly 发表于 2021-12-8 19:25 | 显示全部楼层
看设备管理器里面是否存在设备
supernan 发表于 2021-12-8 19:27 | 显示全部楼层
这个有相关参考设计的。
huangchui 发表于 2021-12-8 19:29 | 显示全部楼层
虚拟串口是需要驱动的?
stly 发表于 2021-12-8 19:30 | 显示全部楼层
这个是需要热插拔才能实现吗?
dingy 发表于 2021-12-8 19:32 | 显示全部楼层
usb没有开发过。
xxrs 发表于 2021-12-8 19:35 | 显示全部楼层
在USB的协议里,只有主机和HUB具有设备移出检测功能,作为从设备(device)往往不具有设备断开连接的检测,需要自己设计一种检测机制,判断 USB主设备是否与之断开。
huangchui 发表于 2021-12-8 19:37 | 显示全部楼层
STM32的USB是OTG设备,既可以作为主机也可以作为设备,当其作为设备通过USB与PC通信时,可能会需要STM32 检测是否与PC断开连接,这时候不可以向PC发数据,在PC连接上时,可以继续USB通信。
zhenykun 发表于 2021-12-8 19:39 | 显示全部楼层
https://wenku.baidu.com/view/5d5e8b38804d2b160b4ec0d8.html
yszong 发表于 2021-12-8 19:41 | 显示全部楼层
usb所使用的IO口在设置为usb后自动分配功能
stly 发表于 2021-12-8 19:49 | 显示全部楼层
这个以前用过stm32自己开发的例程。
pengf 发表于 2021-12-8 19:51 | 显示全部楼层
这个都是电脑识别驱动的。
yufe 发表于 2021-12-8 19:53 | 显示全部楼层
具体需要看usb的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

712

主题

7557

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部