VB6用定时器查询的方式实现与USB设备通讯慢,怎么解决

VB6用定时器查询的方式实现与USB设备通讯慢,如何解决?
VB code
Public Sub WriteReport()
    result = WriteFile(HidDevice, SendBuffer(0), 65, 0, 0)
End Sub



Public Sub tmrDelay_Timer()
    Timeout = True
    SetHosMsg.tmrDelay = False
End Sub

Public Sub ReadReport()
    result = ReadFile(HidDevice, ReadBuffer(0), 65, 0, 0)
End Sub

Public Sub VBtoUSB()
    Call WriteReport   '发送
    
    Timeout = False
    SetHosMsg.tmrDelay.Interval = 5
    SetHosMsg.tmrDelay.Enabled = True
    Do
        DoEvents
    Loop While Timeout = True
    
    Call ReadReport   '接收
End Sub


借鉴了别人的程序,调用了API来实现与下位机USB通讯。
我现在是用VB中tmr定时器,以1ms的速度(VB6定时间最小1ms)去查询USB设备,但是调试到一条指令下发至返回有64ms!!!!!!一直找不到哪里花去了这么多时间。注:USB设备是STM32F103,以PLL/1.5的速度来描述USB速度,可以说肯定可以保证VB6中1ms的速度。

------解决方案--------------------
这个得研究一二。
------解决方案--------------------

是 HID 设备?

不需要都用延时。

如果接收返回错误,可能是下位机来不及应答,此时再延时后重复接收。

另外,我一般是用下面一组 API:

Public Declare Function ConnectToUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal vid As Integer, ByVal pid As Integer, ByVal version As Integer) As Long
Public Declare Sub CloseUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long)

Public Declare Function SetFeatureToUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long, ByRef buff As Byte, ByVal datalength As Long) As Long
Public Declare Function GetFeatureFromUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long, ByRef buff As Byte, ByVal datalength As Long) As Long

Public Declare Function GetFeatureLength Lib "HS32U2_HID.dll" (ByVal hDev As Long) As Long

SetFeature 相当于 WriteReport;GetFeature 相当于 ReadReport。

------解决方案--------------------

是 HID 设备?

不需要都用延时。

如果接收返回错误,可能是下位机来不及应答,此时再延时后重复接收。

另外,我一般是用下面一组 API:

Public Declare Function ConnectToUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal vid As Integer, ByVal pid As Integer, ByVal version As Integer) As Long
Public Declare Sub CloseUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long)

Public Declare Function SetFeatureToUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long, ByRef buff As Byte, ByVal datalength As Long) As Long
Public Declare Function GetFeatureFromUSBHIDDevice Lib "HS32U2_HID.dll" (ByVal hDev As Long, ByRef buff As Byte, ByVal datalength As Long) As Long

Public Declare Function GetFeatureLength Lib "HS32U2_HID.dll" (ByVal hDev As Long) As Long

SetFeature 相当于 WriteReport;GetFeature 相当于 ReadReport。