STM32F103C8T6 USB HID 64字节收发实现
需积分: 9 180 浏览量
更新于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-06-22 上传
2023-02-24 上传
2023-06-10 上传
2023-05-30 上传
2023-05-31 上传
2023-05-31 上传
2023-09-04 上传
xiaomayideshijie
- 粉丝: 0
- 资源: 1
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全