- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《STM32官方USB例程JoyStick详解》.pdf
转载:http://www.usr.cc/thread-51423-1-1.html 作者:追风 一、USB 的 “JoyStickMouse”例程结构分析 1、例程的结构 (1)底层结构 包括5 个文件:usb_core.c (USB 总线数据处理的核心文件),usb_init.c, usb_int.c (用于端点数据输入输入中断处理),usb_mem.c (用于缓冲区操作), usb_regs.c (用于寄存器操作)。它们都包含了头文件 “usb_lib.h”。在这个 头文件中,又有以下定义: #include usb_type.h #include usb_regs.h #include usb_def.h #include usb_core.h #include usb_init.h #include usb_mem.h #include usb_int.h usb_lib.h 中又包含了七个头文件,其中usb_type.h 中主要是用typedef 为 stm32 支持的数据类型取一些新的名称。usb_def.h 中主要是定义一些相关的数 据类型。 还有一个未包含在usb_lib.h 中的头文件,usb_conf.h 用于USB 设备的配置。 (2)上层结构 上层结构总共5 个文件:hw_config.c (用于USB 硬件配置)、usb_pwr.c (用 于USB 连接、断开操作)、usb_istr.c (直接处理USB 中断)、usb_prop.c (用 于上层协议处理,比如HID 协议,大容量存储设备协议)、usb_desc.c (具体 设备的相关描述符定义和处理)。 可见,ST 的USB 操作库结构十分清晰明了,我先不准备直接阅读源代码。而是 先利用MDK 的软件模拟器仿真执行,先了解一下设备初始化的流程。 2、设备初始化所做的工作 (1)Set_System(void) 这个是main 函数中首先调用的函数,它位于hw_config.c 文件中。它的主要功 能是初始化时钟系统、使能相关的外围设备电源。 配置了JoyStickMouse 所用到的5 个按键,并且配置了两个EXTI 中断,一 个是用于把USB 从挂起模式唤醒,还有一个用途未知。 (2)USB_Interrupts_Config(); 这个是main 函数中调用的第二个函数,它也位于hw_config.c 文件中。主要功 能是配置USB 所用到的中断。 跟踪到代码中,主要设配置了USB 低优先级中断和唤醒中断,又有一个EXTI 中 断功能未知。 (3)Set_USBClock() 这个是main 函数中调用的第三个函数,它也位于hw_config.c 文件中。它的功 能是配置和使能USB 时钟。 (4)USB_Init(void) 这个是main 函数中调用的第四个函数,它也位于usb_init.c 文件中。它初始 化了三个全局指针,指向DEVICE_INFO、USER_STANDARD_REQUESTS和DEVICE_PROP 结构体。 后面两个是函数指针结构体,里面都是USB 请求实现、功能实现的函数指针。 void USB_Init(void) { pInformation = Device_Info; pInformation-ControlState = 2; pProperty = Device_Property; pUser_Standard_Requests = User_Standard_Requests; /* Initialize devices one by one */ pProperty-Init(); } 这三个结构体都是与具体设备枚举和功能实现相关的,定义在usb_prop.c 和 usb_desc.c 文件中。 DEVICE_PROP Device_Property = { Joystick_init, Joystick_Reset, Joystick_Status_In, Joystick_Status_Out, Joystick_Data_Setup, Joystick_NoData_Setup, Joystick_Get_Interface_Setting, Joystick_GetDeviceDescriptor, Joystick_GetConfigDescriptor, Joystick_GetStringDescriptor, 0, 0x40 /*MAX PACKET SIZE*/ }; USER_STANDARD_REQUESTS User_
您可能关注的文档
- 《solidworks中二维图转三维图》.doc
- 《SolidWorks使用技巧》.doc
- 《SolidWorks基础教程》.pdf
- 《Solidworks官方 高级装配教程》.pdf
- 《solidworks官方全套教程》.pdf
- 《solidworks实例详解(好)》.pdf
- 《Solidworks工程图模板制作_强力腿荐!》.doc
- 《solidworks工程图模板制作大全》.doc
- 《SolidWorks工程图转换为DWG文件的方法》.pdf
- 《Solidworks建模ppt(修改版)》.ppt
- 《STM32的USB详解》.pdf
- 《Strategic Inbound Optimization-Foreign Trade Zones and Reshoring Increase》.pdf
- 《Strategic trade policy with incompletely informed》.pdf
- 《Strategies Used in the Translation of Interlingual 》.pdf
- 《Strategy Of Stock Valuation By Fundamental Analysis》.pdf
- 《Streaming Predictions of User Behavior in Real-Time Presentation》.pdf
- 《Strength and deformability of waste tyre rubber-filled reinforced concrete columns》.pdf
- 《Structured Trade and Commodity financing》.pdf
- 《Studies on the Mental Processes in Translation M》.pdf
- 《Study of Aluminum-Zinc-Silicon Hot-Dip Liquid》.doc
最近下载
- 07-维护支柱应知应会.doc VIP
- 考试点专业课:中国矿业大学(徐州)财务管理习题.pdf VIP
- 中国矿业大学《财务管理》2020-2021学年期末试卷.pdf VIP
- 中国矿业大学《财务管理》2021-2022学年第一学期期末试卷.pdf VIP
- 中国矿业大学《国际会计学(英语)》2021-2022学年第一学期期末试卷.doc VIP
- 中国矿业大学《财务管理》2025 - 2026学年第一学期期末试卷.docx VIP
- 高二《直线和圆的方程》易错培优竞赛试题-2024-2025学年高二数学竞赛能力培优练(全国通用)解析版.pdf VIP
- 高二《直线和圆的方程》易错培优竞赛试题-2024-2025学年高二数学竞赛能力培优练(全国通用)原卷版.pdf VIP
- 第六章:维护支柱.pdf VIP
- 缺血性卒中患者椎动脉颅内段钙化:多因素关联与临床洞察.docx
文档评论(0)