基于STM32USB程序开发笔记.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于STM32USB程序开发笔记

基于STM32的USB程序开发笔记 第一篇:需要准备的一些资料 1 基于STM32的USB程序开发笔记(三) ——STM32 USB固件函数的一些介绍 4 基于STM32的USB程序开发笔记(四)——USB设备的枚举(上) 12 第五篇:USB设备的枚举(下) 15 第六篇:XP下USB驱动开发的初步准备工作 23 第七篇:XP下USB驱动开发的最终完成 30 第一篇:需要准备的一些资料 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()等等,在此说明战士不支持非故意如此,而是还没时间仔细深入编写完善,因为这些目前不被支持的部分目前不被使用到。 后序将接着对各个部分进行一些说明,希望朋友们多多支持,同时欢迎朋友们讨论。 如果你使用的是万利的STM3210B-LK1开发板,则可以烧写hex文件后进行测试。 下载该文件请参阅: /bbs/bbs_content.jsp?bbs_sn=1808061bbs_page_no=1bbs_id=3020 第2篇:STM32?USB固件函数的驱动原理 首先需要了解一个概念: USB?设备(DEVICE)从来只是被动触发,USB主机(HOST)掌握主动权,发送什么数据,什么时候发送,是给设备数据还是从设备请求数据,都是由USB?主机完成的,USB设备只是配合主机完成设备的枚举、数据方向和大小。根据数据特性再决定该不该回复该如何回复、该不该接收该如何接收这些动作。 了解这些,再仔细查看STM32的参考手册USB部分以及STM32的中断向量表,从中可以找到两个中断: /******************************************************************************* *?Function?Name??:?USB_HP_CAN_TX_IRQHandler *?Description????:?This?function?handles?USB?High?Priority?or?CAN?TX?interrupts *??????????????????requests. *?Input??????????:?None *?Output?????????:?None *?Return?????????:?None *******************************************************************************/ void?USB_HP_CAN_TX_IRQHandler(void) { ??USB_HPI(); } /******************************************************************************* *?Function?Name??:?USB_LP_CAN_RX0_IRQHandler *?Description????:?This?function?handles?USB?Low?Priority?or?CAN?RX0?interrupts *??????????????????requests. *?Input??????????:?None *?Output?????????:?None *?Return?????????:?None *******************************************************************************/ void?USB_LP_CAN_RX0_IRQHandler(void) { ??USB_LPI();

文档评论(0)

qee026 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档