STM32F103C8T6 USB HID 64字节收发实现
需积分: 9 45 浏览量
更新于2024-09-06
收藏 779KB DOCX 举报
该文档详细介绍了如何在STM32F103RB微控制器上,基于USB官方库V4.1和标准外设库V3.6,对Custom_HID工程进行修改,以实现USB2.0全速下64字节的收发功能。上位机使用Bus_Hound软件进行数据发送与监测。
正文:
USB HID(Human Interface Device)设备是一种常见的USB类设备,用于人机交互,如键盘、鼠标等。在本文档中,开发者将Custom_HID工程进行了两部分的改造:枚举成功和收发成功。
1. 枚举过程:
- 开发者首先将USB_LIB_V4.1库与MDK_ARM(Keil)集成开发环境相结合,但忽略了一些针对特定封装包的安装提示。
- 为了匹配STM32F103RBT6芯片,删除了不适用的启动文件,并选择了正确的启动文件。
- 修改魔术棒设置,包括器件型号、宏定义、代码压缩程度和包含路径,以适应F10X标准外设库。
- 在`system_stm32f10x.c`中配置时钟系统,使用外部16MHz晶振,并调整HCLK分频。
- 编译、下载固件,通过JLINK_SW下载,并确保下载配置正确,然后检查设备是否成功枚举。
2. 实现收发功能:
- 在`USB_DESC.C`中,修改配置描述符,增加一个端点,使总端点数量达到2个,以便支持收发。
- 更新最大包长为64字节,同时修改输入和输出端点的配置。
- 完全修改报告描述符,定义收发机制,报告长度设为64字节。注意在报告描述符中正确设定输入输出报告的数量。
- 更新`USB_DESC.H`中的报告描述符大小,以匹配新的报告长度,避免PC无法识别USB设备。
- 修改`USB_ENDP.C`中的端点处理函数,适应新的端点配置。
- 更新`USB_CONF.H`中的端点设置,包括端点数目和地址。
- 在`USB_PROP.C`中修改端点初始化代码。
- 在`MAIN`函数的`Set_System`部分,对USB IO口初始化、上拉引脚配置和硬件板卡资源配置进行相应调整。例如,上拉引脚配置可能因硬件不同而被注释掉。
- 简化`USB_Interrupts_Config()`函数,仅保留USB中断,注释掉其他不必要的中断源。
- `Set_USBClock(void)`和`USB_Init(void)`函数保持原样,无需修改。
通过以上步骤,开发者成功地将官方的Custom_HID工程改编为可以进行64字节收发的USB HID设备。这个过程涉及了USB设备枚举、USB描述符、端点配置、中断管理和硬件初始化等多个关键环节,对于理解和实现STM32的USB HID通信具有重要的实践指导意义。
2019-06-11 上传
2022-12-20 上传
2021-04-28 上传
2022-02-06 上传
2022-02-06 上传
xiaomayideshijie
- 粉丝: 0
- 资源: 1
最新资源
- pomodoro:用榆木制成的Pomodoro应用程序
- Shiba_Inu-开源
- [信息办公]PHP Classifieds v7.3_classifieds.rar
- Scanned-Images-Tools,c#二维码解析源码,c#
- Gujarati Ringtone Donwload -crx插件
- Day13-14
- backbone-todo
- Advanced-DB-project
- Habbig Aceitação Automática de Flash-crx插件
- tiktok-clone-react:React,Ticker,Firebase。 蒂科克(Tiktok)的照片403ошибкуинеотдаетвидео
- [影音娱乐]星辰音乐DJ系统 v1.01最终版_xcdjv1.01.rar
- 计算齿数:使用一些图像处理算法来计算齿轮上的齿数。-matlab开发
- GameWorldApp,抖音表白恶搞小程序c#源码,c#
- evstuff:半熟事物的常规沙箱,主要与Anki,日语和InDesign有关
- pycharm快捷键ReferenceCard整理
- spring-loaded-example