LIBUSB+BCB6.0 很奇怪的问题
下位机以 2 MS 间隔向上位机通过 USB 发数据, 上位机以 1MS 的间隔读下位机的数据, 但传输成功的间隔时间竟有 30MS 之多,并且不稳定的, 请教哪里出了问题? CDC 协议, 每次传 64 字节. 上位机用 1 MS 的定时器来保证 1MS 读一次, 如果上位机连续读,那么传输成功的间隔是 2 MS, 但是上位机还要处理其它,不可能连续读的 下位机的数据是实时的,没法集中传输 问题不在下位机, 上位机是不区分传输类型的 libusb在上位机呼叫 Read 时才会做一次传输,上位机是在 User Mode, 很难每 1mSec 完成一次传输! 是很难1MS 传一次, 但不至于几十毫秒吧 我把 VID 改了, 用 LIBUSB 生成的驱动, 能够通讯,就是速度提不到 MS 级 用异步接收,程序编译通过,但运行出错char data;
void *request;
int read;
if(usb_bulk_setup_async(dev, &request, 0x81) < 0) {
// error handling
}
if(usb_submit_async(request, data, sizeof(data)) < 0) { <------这里运行出错
// error handling
}
read =usb_reap_async(request, 1000);
if(read >= 0)
printf("read %d bytes\n", read);
else
// error handling
usb_free_async(&request); zhang..yb 发表于 2012-11-20 10:46 static/image/common/back.gif
用异步接收,程序编译通过,但运行出错
char data;
void *request;
libusb返回的error code是多少?
页:
[1]