usb通讯问题
1、使用stc8h8k64u做了个usb硬件模块。2、电脑4个usb口用鼠标测试均正常。
3、用STC-ISP上的USB-HID测试usb硬件模块通讯均正常(电脑4个usb口测试均正常)
4、判断结论是usb硬件模块正常。
测试发现问题:
用c#自己编写的上位机测试软件时,发现电脑只有一个usb口与usb硬件模块通讯正常,电脑其它3个usb口均不正常(好像没发现usb硬件模块)
请教,c#测试软件(pc端),检测stc8h8k64u的usb时候,电脑1个口正常,其它3个口无法识别硬件识别是什么原因?
c#上位机程序
地址有问题?
插上先在0地址获取描述符,然后重新分配地址 DebugLab 发表于 2024-12-20 10:25
地址有问题?
插上先在0地址获取描述符,然后重新分配地址
能具体说下不 c51mcu 发表于 2024-12-20 10:53
能具体说下不
当一个USB设备插入主机时,主机需要通过一系列步骤来识别和配置该设备。这个过程包括获取设备描述符、分配新的设备地址等。以下是详细的步骤:
1. **设备连接和供电**:
- 当USB设备插入主机端口时,设备会从总线获得电力。
- 设备进入默认状态,并且有一个唯一的地址:0(地址0是所有新连接设备的默认地址)。
2. **复位和枚举**:
- 主机检测到新设备的连接后,会发送复位信号给设备。
- 设备响应复位信号,并进入默认状态。
3. **获取设备描述符**:
- 主机向设备地址0发送一个标准请求(GET_DESCRIPTOR),以获取设备描述符。
- 设备返回设备描述符,其中包括设备的基本信息,如设备类、子类、协议、制造商字符串、产品字符串等。
4. **设置设备地址**:
- 主机分析设备描述符,决定为设备分配一个新的唯一地址(通常是一个1到127之间的数字)。
- 主机发送SET_ADDRESS请求到设备地址0,指定新的设备地址。
- 设备接收并确认新的地址,并在接下来的通信中使用这个新地址。
5. **进一步配置**:
- 主机可能会继续发送其他请求,如GET_CONFIGURATION_DESCRIPTOR,以获取更多的配置信息。
- 主机选择一个合适的配置,通过SET_CONFIGURATION请求将设备设置为工作状态。
6. **设备就绪**:
- 设备现在已完全枚举并配置好,可以开始正常的数据传输。
这些步骤确保了USB设备能够被主机正确识别和配置,从而实现数据交换和其他功能。
DebugLab 发表于 2024-12-20 11:16
当一个USB设备插入主机时,主机需要通过一系列步骤来识别和配置该设备。这个过程包括获取设备描述符、分 ...
关键问题是,一个usb口是可以正常的(说明整个枚举过程是正确的),其它usb口无法和这个硬件设备连接上。也就是同一个usb硬件设备,插到电脑usb1口正常,拔出后插到2、3、4口上都无法打开usb硬件设备。 c51mcu 发表于 2024-12-20 11:33
关键问题是,一个usb口是可以正常的(说明整个枚举过程是正确的),其它usb口无法和这个硬件设备连接上。 ...
这和你写的上位机程序有关
页:
[1]