打印

STM32虚拟串口驱动如何一次发送261个数据给上位机?

[复制链接]
2772|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vikione|  楼主 | 2012-11-9 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我设备的需求是:将网卡接收到的一帧数据(一帧包括261个数据,每个数据都是一个十六进制如0xc2),通过USB发送到上位机。
    我将STM32的USB虚拟串口驱动(V3.1版)按照我的要求进行修改并实现了该功能,起初我USB虚拟串口驱动用的是官方提供的V3.1版本,但是总是出现:串口被占用的bug(见贴https://bbs.21ic.com/frame.php?frameon=yes&referer=http%3A//bbs.21ic.com/iclist-49.html
    然后我使用了V3.4的版本,就没有上面的问题了,但是又出现了新的问题:
    在V3.1中我实现将网卡接收到的一帧261个数据发送到上位机的代码是在main()函数的while中不断发送,如下述代码:
  while (1)
  {
   size = ETH_HandleRxPkt(uip_buf);
      
      if (size > 0)
   {
  USB_SIL_Write(EP1_IN, (u8*)  uip_buf, 64);
         USB_SIL_Write(EP1_IN, (u8*) (uip_buf+64), 64);
         USB_SIL_Write(EP1_IN, (u8*) (uip_buf+128), 64);
  USB_SIL_Write(EP1_IN, (u8*) (uip_buf+192), 64);
  USB_SIL_Write(EP1_IN, (u8*) (uip_buf+256), 5);
    }
  }
    上述代码在USB虚拟串口V3.1版本中经过测试能够实现将uip_buf数组中261个数据发送到上位机,并可在串口调试助手中显示。
    但是我使用了V3.4版本后采用相同的方式确不能发送成功。
请问我USB虚拟虚拟串口V3.4版本连续用USB发送261个数据该如何实现?
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

10

帖子

1

粉丝