月份:2019年2月


将TeenyUSB加入到CubeMX生成的工程中


ST为其旗下的STM32系列芯片提供了图形界面的初始化工具STM32CubeMX,使用这个工具能够以可视化的方式完成引脚分配,时钟配置,并生成相应的代码,能够大大提高工作效率。TeenyUSB是一个简化的USB协议栈。下面将介绍如何在CubeMX生成的工程中加入TeenyUSB协议栈。这里以STM32F723E-Discovery开发板为例来说明。

打开CubeMX后新建一个工程,选择芯片型号为STM32F723IEK6

Read More »

简单几步,让自定义USB设备也能免驱动运行


更完整的说明见《使用微软系统描述符1.0制作免驱动自定义USB设备》和《使用微软系统描述符2.0制作免驱动自定义USB设备

做过USB设备开发的人,对USB中的自定义HID设备一定不陌生。很多时候为了通过USB接口与上位机进行通讯,都会采用自定义HID设备的方式。采用这种方式的通讯设备,优点是不需要写驱动程序,Windows上也有相应的API进行操作。这种方式的缺点是通讯速率比较慢,因为HID设备采用中断方式传输数据,对全速设备而言最快一秒钟只能传64K字节数据。而USB全速设备的理论带宽能达到1M字节每秒,连10%的性能都没有达到。

如果采用Bulk传输,则可以达到理论最大带宽,榨干USB总线的性能。但是采用Bulk传输的时候,设备要么做成串口这样的标准设备,免去驱动的编写,这样设备就不是自定义的,使用起来不如自定义设备那么方便。要么做成Bulk传输的自定义设备,但是这样就得写编写驱动程序,而驱动开发也是一个大坑。

那么能不能既能获得自定义的好处,又不进行驱动开发呢?答案是肯定的。

Read More »