打印
[STM32F1]

请教下 使用libusb-win32 pc读取stm32 速率只有33k

[复制链接]
2440|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tcm_36|  楼主 | 2014-12-2 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下位机里的程序是修改的keil下的HID的例子。
首先,我将0端点的最大包改成了64,从bus hound读取到的还是8,好像没有起作用。
然后修改了,设备类等描述符为0xFF表示为自定义设备。
将1端点,设置为IN,bulk模式,缓冲区大小64.
在1端点的处理函数中,不进行数据复制,仅对数据长度赋值64后使能端点。

然后使用libusb的inf软件安装驱动,可以识别到设备。
但是从bus hound 看,直接接台式机机箱,没有被挂接到2.0总线下,速度只有33kB。我通过一个外接2.0集线器,然后就被挂接到2.0总线速度达到300kB。

IN端点1的处理函数如下,去掉了数据复制过程。
void USB_EndPoint1 (U32 event) {

  switch (event) {
    case USB_EVT_IN:
      //GetInReport();
      //USB_WriteEP(HID_EP_IN, InReport,64);
       (pBUF_DSCR + (HID_EP_IN&0x0F))->COUNT_TX = 64;
       EP_Status(HID_EP_IN, EP_TX_VALID);
      break;
  }
}
上位机是qt的一个程序,就是循环不停读取。
void MainWindow::button(void)
{
  char data[64];
  int k = 100;
  while(1)
  {
  data[1] = usb_bulk_read(this->open,0x81,data,64,0);
   qDebug("error setting config #: %s\n",usb_strerror());
  }
}
工程文件和截图在这里,其中还有一个较为稳定的iic,大家也可以一起讨论。
没权限发链接额
http:去掉这里//url.cn/fPITkE
我的问题主要有:
怎样提高传输速度呢?
怎样才能确保被挂接到2.0总线呢?
对端点0分配64字节,为什么bus hound 还是显示8字节呢?
沙发
tcm_36|  楼主 | 2014-12-2 20:14 | 只看该作者
自己顶-_-||

使用特权

评论回复
板凳
mmuuss586| | 2014-12-2 20:54 | 只看该作者

USB不熟悉,先支持下;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

1

粉丝