• 4490阅读
  • 1回复

请教:主机上编写的USB通信测试程序,下到s3c2440开发板中不能正确运行??? [复制链接]

上一主题 下一主题
离线xuyantao
 
只看楼主 倒序阅读 楼主  发表于: 2008-06-30
— 本帖被 XChinux 执行加亮操作(2008-06-30) —
各位高手,大家好!我在做USB通信程序,给板子移植了libusb库,在主机编了一个小的测试程序,能够检测出主机上USB设备的信息。但是移植到板子上以后,能够运行,就是不能检测USB设备的信息,感觉就好像没有发现USB似的。不知道是什么原因?请帮忙分析一下,谢谢!
离线xuyantao
只看该作者 1楼 发表于: 2008-07-01
源代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <usb.h>

void usbio_main(struct usb_device *dev)
{
    usb_dev_handle *dev_handle;

    dev_handle = usb_open(dev);

    if (dev_handle == NULL) {
        printf("USB IO open failed.\n");
        return;
    }

    usb_close(dev_handle);
}

struct usb_device *usbio_probe()
{
    struct usb_bus *busses, *bus;
//    int c, i, a;

    usb_init();
    usb_find_busses();
    usb_find_devices();

    busses = usb_get_busses();

    for (bus = busses; bus; bus = bus->next) {
        struct usb_device *dev;

        for (dev = bus->devices; dev; dev = dev->next) {
            struct usb_device_descriptor *desc;

            desc = &(dev->descriptor);
            printf("Vendor/Product ID: %04x:%04x\n", desc->idVendor,
                  desc->idProduct);
            if (1) {
                return dev;
            }
        }
    }

    return NULL;
}

int main()
{
    struct usb_device *dev;
    struct usb_device_descriptor *desc;

    dev = usbio_probe();
    desc = &(dev->descriptor);

    if (dev == NULL) {
        printf("USB IO Card not found.\n");
        return -1;
    }

    printf("SUB IO Card found.\n");
    printf("Vendor/Product ID: %04x:%04x\n", desc->idVendor,
          desc->idProduct);

    usbio_main(dev);
}

每次运行都是显示:USB IO Card not found.

但是当我插上设备的时候,板子明明有USB信息,如下:
usb 1-1: new low speed USB device using s3c2410-ohci and address 4
usb 1-1: Product: Twin USB Gamepad
input: USB HID v1.10 Joystick [Twin USB Gamepad ] on usb-s3c24xx-1

是什么原因造成的呢?请帮帮忙啊!多谢!

不知道什么原因!!各位达人帮帮忙啊!
快速回复
限100 字节
 
上一个 下一个