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

[复制链接]
 楼主| djjyi 发表于 2017-7-6 14:31 | 显示全部楼层 |阅读模式
现在用stm32f10x的usb做虚拟串口,当连接上或断开电脑端usb口后,是否有相应的状态判断函数进行判断连接成功或断开连接?

 楼主| djjyi 发表于 2017-7-6 14:38 | 显示全部楼层
自己搜索了下,应该是这个bDeviceState变量 如果bDeviceState = UNCONNECTED代表断开连接
typedef enum _DEVICE_STATE
{
  UNCONNECTED,
  ATTACHED,
  POWERED,
  SUSPENDED,
  ADDRESSED,
  CONFIGURED
} DEVICE_STATE;
不知道是否正确
 楼主| djjyi 发表于 2017-7-6 14:45 | 显示全部楼层
测试发现 上电初始化bDeviceState = UNCONNECTED
但连接电脑后 会变bDeviceState = ADDRESSED ,如果拔掉USB线,bDeviceState = ADDRESSED ,无法探测是否断开usb
icecut 发表于 2017-7-6 15:11 | 显示全部楼层
不同芯片usb库有区别,看一下断开usb 的相关代码.
kkzz 发表于 2017-7-6 17:34 | 显示全部楼层
电脑不能识别吗?
hudi008 发表于 2017-7-6 17:35 | 显示全部楼层
看设备管理器里面是否存在设备
lzmm 发表于 2017-7-6 17:35 | 显示全部楼层
djjyi 发表于 2017-7-6 14:45
测试发现 上电初始化bDeviceState = UNCONNECTED
但连接电脑后 会变bDeviceState = ADDRESSED ,如果拔掉U ...

这个有相关参考设计的。
minzisc 发表于 2017-7-6 17:35 | 显示全部楼层
虚拟串口是需要驱动的?
selongli 发表于 2017-7-6 17:36 | 显示全部楼层
这个是需要热插拔才能实现吗?
fentianyou 发表于 2017-7-6 17:36 | 显示全部楼层
usb没有开发过。
fentianyou 发表于 2017-7-6 17:37 | 显示全部楼层
在USB的协议里,只有主机和HUB具有设备移出检测功能,作为从设备(device)往往不具有设备断开连接的检测,需要自己设计一种检测机制,判断 USB主设备是否与之断开。STM32的USB是OTG设备,既可以作为主机也可以作为设备,当其作为设备通过USB与PC通信时,可能会需要STM32 检测是否与PC断开连接,这时候不可以向PC发数据,在PC连接上时,可以继续USB通信。
xiaoyaodz 发表于 2017-7-6 17:37 | 显示全部楼层
febgxu 发表于 2017-7-6 17:38 | 显示全部楼层
usb所使用的IO口在设置为usb后自动分配功能
sdlls 发表于 2017-7-6 17:38 | 显示全部楼层
这个以前用过stm32自己开发的例程。
kkzz 发表于 2017-7-6 17:39 | 显示全部楼层
这个都是电脑识别驱动的。
hudi008 发表于 2017-7-6 17:39 | 显示全部楼层
具体需要看usb的操作。
lzmm 发表于 2017-7-6 17:39 | 显示全部楼层
djjyi 发表于 2017-7-6 14:45
测试发现 上电初始化bDeviceState = UNCONNECTED
但连接电脑后 会变bDeviceState = ADDRESSED ,如果拔掉U ...

STM32F4有开发usb的库了。
minzisc 发表于 2017-7-6 17:39 | 显示全部楼层
楼主的上位机写好了吗?
selongli 发表于 2017-7-6 17:39 | 显示全部楼层
好像usb的热插拔,不容易识别。
fentianyou 发表于 2017-7-6 17:39 | 显示全部楼层
检测USB断开连接的方法有多种,USB在断开时会有SUSPEND中断,但是USB总线上没有数据时,主机也可以将其挂起,产生SUSPEND中断,所 以这种方法不可靠,另外就是PC定时向USB device发送数据,当USB device没有收到数据时即可认为USB断开连接,但是这种方法要想提高实时性,就需要传输大量的握手数据,占用USB总线,不利于USB数据的高效 率、高速度的传输。最好的方法是通过硬件实现,在USB的VBUS上做**,USB主机会像device供电,STM32可以检测该电源引脚,在USB连 接时产生上升沿,断开时产生下降沿,据此可以快速判断是否与USB主机断开连接。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

294

帖子

0

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