基于STM32 的USB程序开发笔记
以前一直就有打玩 USB 的想法,最近时间充足于是决心打玩 STM32 的 USB,购买的是万利的 STM3210B-LK1 板,琢磨 USB 已有半个
多月,在固 件、上位机驱动以及应用程序的访问这三方面终于有所突破,这期间通过网络上授寻了许多相关资料,主要来自 ST 提供
的 USB 固件,以及圈圈 (computer00)提供的一些关于 USB 驱动开发的资料,通过这段时间的学习,了解到学习 USB 对于未接触过的朋
友来说确实存在许多的知识壁垒,本 着开源精神,在此对 STM32 的 USB 固件程序的编写、DriverStudio + WindowsXP DDK + VC6 驱
动开发以及应用程序做了一些介绍,为更好理解,请仔细学习 STM32 USB 的参考手册以及 USB 协议,如果对 VC6 下开发还不是太熟悉
或者说不曾学过,那么如果想理解有些问题,就必须学习 VC6 了。本套笔记是基于我编写的程序进行说明的,请配合该程序进行学习。
第一篇:需要准备的一些资料
1:STM32 的参考手册,这对于设备底层 USB 的硬件配置以及事件驱动机制的了解尤为重要,你需要了解各个寄存器的功能以及如
何操作,比如 CNTR、ISTR、EPnR、DADDR 等等,如果你想学习 USB,这个手册是必须的。
2:USB2.0 协议,这个资料同样必不可少,如果因为英语阅读能力而苦苦寻找中文版的 USB2.0 协议,建议不要这么做,现在网络
中的所谓的中文版的 USB2.0 协议不 是官方撰写的,大多数是一些热心朋友自己翻译的,却不是很全面,如果你在为寻找这类的资料
而无所获时,建议认真塌实的看看官方英文版的 USB2.0 协议, 官方协议阐述的十分详细,650 多页,一字一句的了解全部协议不太
可行,可针对性的重点理解,比如对第9章USB Device Framework 的详细理解对于你的 USB Device 固件开发不可缺少(这里就是 STM32)。
3:ST提供的USB固件库,这个类库较为散乱,但不可不参考
以下是链接包含固件、驱动以及应用程序,固件部分有些功能是不被支持的,如SR_SetDescriptor()、 SR_SynchFrame()等等,在此
说明不支持非故意如此,而是还没去更仔细深入编写完善,目前这些不被支持的部分目前不被使用到。
下载链接:
http://blog.ednchina.com/lbxxx