是自定协议,用到一个bulk in ep1, 一个bulk out ep2 端点

用虚拟串口的优点显而易见,上位机的编写非常方便,就按照常规的串口功能编写就可以了,而速度确还是usb的速度 

USB要提速

1、使用自定义的Bulk传输
2、增加驱动的Buffer

刚才又实验了下,现在驱动程序方面的速度瓶颈已经解决了。主要还是这个PipeMaxTransferSize的关系,这个值越大速度越快。晚上注意到这 个值很多USB设备的驱动程序都是设的很大的,连HID设备都设成4096,我的一个U盘也是4096,KEIL的ULINK设置成65535,几乎所有 USB设备驱动的端点0都是设成65535。晚上测试了下,这个值不会影响数据传输,这个最大值不管怎么设实际USB设备管道每次接收的数据该64字节还 是64字节,应该是WINDOWS核心驱动层收到来自USB驱动的IRP后会自动拆包成与设备固件定义的大小(64字节)进行发送的。
    做了下速度对比
pipemaxtranfer:64---33KB/S
pipemaxtranfer:512--265KB/S
pipemaxtranfer:1024--349KB/S
pipemaxtranfer:4096--457KB/S

pipemaxtranfer:65535--506KB/S 

要实现程序更新
 MCU首先能解析出PC通过USB发送的数据是用于更新程序的,然后MCU退出正在运行的程序并进入"更新程序"状态,完成后再运行更新后的程序

关于STM32的速度

要那么快的话就不该用STM32

应该用专用的USB读卡器芯片或者用FPGA定制
很多人有误解,以为USB2.0就意味着high speed,其实不然。USB2.0的设备(当然对主机也是差不多的道理,只是主机至少会支持full speed),可能只支持low speed 1.5M,也可能最高支持到full speed 12M(对于很多ARM芯片都是这种情况,包括STM32),当然也可能最高支持到high speed 480M

转载于:https://www.cnblogs.com/zkp2010/p/5510756.html

STM32的USB速度,终于确定了传输极限,为以后的产品设计提供了数据。相关推荐

  1. STM32移植USB驱动读写U盘

    最近解决了一直困扰我的STM32的U盘读写驱动问题.话说2011年做油田项目时,看到竞争对手厂家升级程序带个电脑去现场插上就能升级,而我只能打开产品外壳用ISP的方式下载.挺眼馋的,后来自己也尝试想搞 ...

  2. STM32 keyboard USB HID键盘功能的实现

    参考地址:https://blog.csdn.net/a65135793/article/details/80287250 相关文章 ·1.STM32完成USB_Keyboard的实验总结----ht ...

  3. STM32 keyboard USB键盘功能的实现

    原文地址::http://blog.csdn.net/u011318735/article/details/17429789 相关文章 ·1.STM32完成USB_Keyboard的实验总结----h ...

  4. STM32实现USB转串口功能(含源码)

    之前的文章中介绍过STM32的USB接口虚拟串口的功能.<STM32CubeMX之USB从机>.本篇文章在此基础上,以STM32F407为例,介绍USB转串口功能的实现. 要实现USB转串 ...

  5. USB学习笔记(4)STM32关于USB库的解读

    USB学习笔记(4)STM32关于USB库的解读 为了方便在STM32上实现USB功能,本文对USB库的文件进行解读. USB-FS_Device peripheral interface(外围接口) ...

  6. 通过CubeMX实现STM32的USB支持

    通过CubeMX实现STM32的USB支持 1 添加晶振 2 添加USB,我用的是FS通道 3添加中间件,选择CDC虚拟串口 4 添加调试接口SWD 5 设置时钟,我用的是12M晶振,选择红线标识的通 ...

  7. STM32的USB外设初窥

    这几天在考虑项目是用USB还是用以太网,但是我们用的平台STM32F103ZET6好像没有Enternet这个外设,所以就先考虑USB吧. USB外设的一大特点就是即插即用,之所以能够这样是因为USB ...

  8. STM32通过USB实现Bootlader/IAP功能

    前沿: 最近在做STM32的USB Bootlader/IAP功能,也就是通过USB实现固件升级,本文介绍下实现的基本思路,希望对实现IAP的同学一个参考,改方法已经在产品中得到实际应用并验证是比较合 ...

  9. 使用STM32的USB模块中后对USB缓冲区的认识

    最近在使用STM32的USB模块开发个项目,还以为挺简单,结果搞了快两天才把USB的包缓冲区的访问搞定,在此做个小总结吧. STM32的USB模块包缓冲区有512B,但是在STM32的参考手册中的存储 ...

最新文章

  1. 流式计算框架Storm网站访问来源实时统计及存储到redis代码示例
  2. 华为云提供针对Nuget包管理器的缓存加速服务测试
  3. 01背包问题,动态规划求解
  4. 设计模式——Decorator 装饰模式
  5. alert获取输入框内容_获取由 AlertDialog 生成的对话框中EditText的文本内容
  6. java 执行顺序_Java代码执行顺序
  7. 面经 | 我是如何拿到阿里offer的?附面试题+视频
  8. Python高级——GIL全局解释器锁问题
  9. 将指定内容写入目标文件(日志)
  10. 编码:decode()/encode()、quote()/unquote()
  11. 《缠中说禅108课》30:缠中说禅理论的绝对性
  12. E/art﹕Failed sending reply to debugger: Broken pipe的解决方法
  13. 国内安卓渠道列表42个
  14. 台式计算机读不到u盘怎么回事,u盘读不出来怎么办?Win7电脑无法识别设备如何解决?...
  15. 3D建模学习对于电脑配置要求高不高?显卡内存等全方面解析,小白福音
  16. js每日一题(11)
  17. 归一化MinMaxScaler()、标准化StandardScaler()(特征工程之特征预处理)
  18. 计网‖已知主机IP地址、子网掩码求网络地址
  19. 一定要让你彻底明白什么是USB子系统
  20. 国产数据库---GBase进入Gartner DMSA魔力象限

热门文章

  1. linux:rm运用
  2. 一文讲透|如何部署OceanBase社区版(4.x版)
  3. H5入门四:CSS选择的艺术
  4. 联想p720装系统_ThinkStation P720
  5. IntelliJ IDEA的简介
  6. 第一位女程序员奥古斯塔·爱达·金
  7. 点 . 和箭头 -> 的区别
  8. 使用 elasticsearch、LogStash、Kibana完成网站流量的监控系统(基于nginx的访问日志实现流量监控)
  9. 好好学习,天天向上(python信息处理)
  10. 如何去除视频里的声音?