第一范文网 - 专业文章范例文档资料分享平台

基于STM32的USB简易鼠标 - 图文

来源:用户分享 时间:2025/5/16 6:47:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

河南城建学院本科毕业设计(论文) USB鼠标的实现

对于全速模式和低速模式,只有获取设备、配置和字符串描述符这三种。在返回配置描述符的时候,接口描述符、端点描述符和类特殊描述符(如HID描述符和报告描述符)要一起返回,这两类描述符不能单独请求返回。图4.1是HID设备描述符的结构。

设备描述符

字符串描符 配置描述符 接口描述符 端点描述符 HID描符符

报告描符符 图4.1 HID设备描述符结构

物理串描符4.2 USB鼠标的运行

①程序采用JTAG下载,将开发板通过下载器连接到电脑,并用一根USB数据线把开发板连接到电脑的USB上。

②打开设计目录下的project.uvproj文件,编译连接工程。

③检查无误后,点击“Target Option”按钮可查看芯片类型和下载方式,点击“Debug”设置完成后,在主界面点击“Download”下载。

④重启开发板。电脑会提示“找到新的USB设备”,因为是标准USB设备, 所电脑会自动安装驱动。

⑤分别控制开发板上的四个键,观察电脑屏幕上鼠标光标的变化,如果光标随按键按下移动,则表明程序运行成功,一个USB简易鼠标就做好了。

4.3 硬件实现

图4.2所示为设备管理器上显示的已成功安装的USB鼠标。

12

河南城建学院本科毕业设计(论文) USB鼠标的实现

图 4.2 设备管理器

图4.3为STM32F103开发板。

图4.3 STM32F103开发板

13

河南城建学院本科毕业设计(论文) 设计总结

设计总结

随着计算机技术的发展,个人电脑的价格越来越低,现在基本上每个家庭都有一台电脑,而鼠标作为与电脑配套的设备之一,正处于开发研制的高潮。通过学习设计USB鼠标,不仅与时代接轨,毕业之后可以从事相关工作,而且也为嵌入式系统的开发奠定了基础。论文研究了基于STM32的嵌入式系统的实现方案,并对HID协议和USB的标准请求进行了深入学习,最终实现了以STM32为核心的USB简易鼠标。此鼠标属于HID类设备,在现在的各种Windows系统中都可以即插即用,不需要再开发安装驱动程序。现在的电脑都至少配备了两个以上的USB接口,不够用的话,还可以用USB集线器拓展,非常方便,所以USB设备的应用前景非常广阔。在完全掌握设计USB鼠标之后,设计其他的HID设备也会非常简单。 本论文主要完成了以下工作:

1、学习了USB协议,并对HID设备进行了深入的研究与分析; 2、了解STM32单片机,熟练掌握了STM32F103开发板的使用; 3、对HID设备的开发流程开发和程序进行分析与学习;

4、编写了程序代码并下载验证,对程序中的错误经过多次的修改,最终达到理想结果。

当然在设计过程中也出现了这样那样的问题,特别是在对USB协议的理解上,因为我不是学嵌入式的,看了一个月的书都没弄懂USB是怎么通信的。本来选这个题目就是为了学东西,虽然我确实没有什么天赋,但不论遇到什么困难,都不能让我止步。最终在我看完了报告描述符的实现方法之后,明白了整个USB鼠标的实现过程。还有就是设备有显示但就是不能工作的问题,通过向同学和老师请教,原来是报告描述符的程序出错,修改之后就完美运行了。

14

河南城建学院本科毕业设计(论文) 附录

附 录

附录A main.c

/***************************************************************** *

* File : main.c * Hardware Environment: stm32f103

* Build Environment : RealView MDK-ARM Version: 4.35 * Version : V1.0 * By : fakor *

*****************************************************************/

/*Includes ------------------------------------------------------*/ #include \#include \#include \#include \

#ifdef __GNUC__

/* With GCC/RAISONANCE, small printf

(option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else

#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */

/* Private function prototypes -----------------------------------*/

void Delay (uint32_t nCount);

15

搜索更多关于: 基于STM32的USB简易鼠标 - 图文 的文档
基于STM32的USB简易鼠标 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1e27i4z2n09sc9l3qd3l_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top