本文主要是介绍STM32F103移植USB-HID步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、开发目的
基于STM32F103实现与上位机的USB-HID通讯。
二、硬件资源
图 硬件资源
三、固件包准备
1、使用usb库
STM32_USB-FS-Device_Lib_V4.0.0.rar: (访问密码:1666)https://url48.ctfile.com/f/33868548-1000799917-a5409d?p=1666
2、使用工程模板
0-Template.rar: (访问密码:1666)https://url48.ctfile.com/f/33868548-1000800634-340337?p=1666
四、移植步骤
1、打开工程模版
检查、编译正常
图4.1 工程模板编译正常
2、打开usb库的Custom_HID工程
基于此库工程进行移植。
图4.2.1 usb库工程
库工程编译正常
图4.2.2 库工程编译正常
3、测试烧录库工程
根据实际芯片,烧录合适的工程
图4.3.1 库工程烧录正常
图4.3.2 usb正确识别
4、移植usb设备文件
图4.4.1 设备驱动库文件
5、移植usb用户文件
分别移植.c/.h文件
图4.5.1 usb用户文件.c
图4.5.2 usb用户文件.h
6、移植后的文件
图4.6.1 usb移植文件
图4.6.2 usb用户文件存放
7、添加工程文件
注意添加文件路径
8、第一次编辑结果
缺少“platform_config.h”文件,删除替换即可
9、第二次编译结果
存在大量库工程使用的测试代码,需要删除,替换为我们需要的内容。
usb_endp.c中
EP1_OUT_Callback | 替换 | EP1_OUT_Callback |
EP1_IN_Callback | 替换 | EP2_IN_Callback |
hw_config.c中
Set_System | 清空 | |
Enter_LowPowerMode | 添加 | |
Leave_LowPowerMode | 修改 | |
USB_Interrupts_Config | 修改 | |
USB_Cable_Config | 清空 | |
EXTI_Configuration | 清空 | |
ADC_Configuration | 清空 | |
Get_SerialNum | 完善ID | |
CustomHID_Reset | 修改端口 | |
CustomHID_SetConfiguration | 修改 | |
CustomHID_Status_In | 清空 | |
CustomHID_Data_Setup | ??暂未修改 | |
CustomHID_SetReport_Feature | ??暂未修改 | |
hw_config.c中
USB_LP_CAN1_RX0_IRQHandler | 添加 |
10、第三次编译结果
编译无错误
11、main中添加接口
编译无错误
12、烧录后查看usb驱动情况
正常。
13、使用USB调试助手
无法通讯
14、修改配置参数
修改usb_desc.c中的配置参数
以及usb_conf.h中参数
15、测试通过
速度慢了,之后再考虑优化吧
实例固件
12-USBHID.rar(访问密码:1666)
这篇关于STM32F103移植USB-HID步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!