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

2019-12-20 21:45发布

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


注:USB设备是STM32F103,以PLL/1.5的速度来描述USB速度,可以说肯定可以保证VB6中1ms的速度。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
24条回答
bbs2009
1楼-- · 2019-12-21 17:01
vb6的定时器实际能跑的最小间隔取决于CPU性能、系统性能,差的机子最低实际只能跑到90ms,强些的能到60ms,但1ms就别指望了,API中Sleep的精度也就10ms,毕竟windows实时性能是比较低的。
vb6的运行方式是有不少虚拟机特点的,所以垃圾回收之类的管理必然占用不少时间。
在应用层想快些的话,就用vc写多线程吧。
twitter
2楼-- · 2019-12-21 18:34
好贴,顶起来,现在用C/C++用的不错了,打算学学VB做些简单的上位机程序呵呵
zr0621
3楼-- · 2019-12-21 18:45
zxq6 发表于 2012-8-18 10:46
VB搞usb,确实速度不行,有一个办法,可以用while(1)循环。只是界面不响应操作,除非增加doevents,不过那 ...

多线程不行吗?
bbs2009
4楼-- · 2019-12-21 21:39
没有中断功能?不用多线程处理?
bbs2009
5楼-- · 2019-12-22 03:37
 精彩回答 2  元偷偷看……
nongxiaoming
6楼-- · 2019-12-22 04:39
zxq6 发表于 2012-8-18 13:01
VB多线程,玩玩你才知道,郁闷的要死。通过api创建,还不容易调试。线程一挂,ide跟着挂。
所以,VB的多 ...

哈哈,这个不懂,VB老东西了,一直用C#,感觉还不错~

一周热门 更多>