Chinaunix首页 | 论坛 | 博客
  • 博客访问: 721082
  • 博文数量: 759
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 4775
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-22 15:16
文章分类

全部博文(759)

文章存档

2008年(759)

我的朋友

分类:

2008-09-25 15:55:55

int readRegOut(usb_dev_handle *udev,
                         unsigned char reg, unsigned char *val, int out) {

  char command[4];
  int ret;

  command[0] = 1;
  command[1] = reg;
  command[2] = 0;
  command[3] = 1;

  ret = usb_bulk_write(udev, 0x03, command, 4, 500);
  if (ret < 0)
    return ret;

  ret = usb_bulk_read(udev, 0x02, val, 1, 1000);
  if (out)
    printf("r-- %02x [01]  :  %i (%02x)  :  %i\n", reg, (int)(*val),
           (int)(*val), ret);
  return ret;

      // readReg
}

这是visioneer xp100 usb scanner驱动的一段代码(读寄存器)
0x03为scanner USB bulk_out_endpoint地址
0x02为scanner USB bulk_in_endpoint地址
我的疑问是:

  command[0] = 1;
  command[1] = reg;
  command[2] = 0;
  command[3] = 1;

这种命令格式(写reg寄存器)是开发厂商定义的还是所有的usb设备都要这样写?

希望大家能帮帮我,谢谢!

--------------------next---------------------

阅读(354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~