首页 » 99链接平台 » STM32F103编程学习——USB HID篇(学习编程修改函数数据)

STM32F103编程学习——USB HID篇(学习编程修改函数数据)

落叶飘零 2024-11-01 19:49:37 0

扫一扫用手机浏览

文章目录 [+]

本次学习使用的开发

配置步骤配置系统时钟树、调试方式,系统滴答tick时钟,相关配置图下图所示。

系统时钟树

配置USB HID参数,PID和VID用户可自己修改,本例使用ST自带的PID和VID。

选择HID模式

STM32F103编程学习——USB HID篇(学习编程修改函数数据) 99链接平台
(图片来自网络侵删)

USB 设备的基本参数配置

HID设备描述符配置

完成上述配置后,使用cube mx软件配置生成USB HID的IAR工程代码。
打开工程代码,还需要对以下几个点进行修改,否则无法枚举成功。

修改点

1)在usbd_conf.c文件中增加USB的IO口初始化和中断控制代码,由于F103系列的DP重新枚举上拉控制电阻需要外部电路来完成,因此需要额外使用一个IO口来控制重新枚举DP上拉的检测。

初始化IO口和中断优先级分配

USB 重新连接检测控制

2)打开工程修改usbd_custom_hid_if.c/H文件,修改CUSTOM_HID_ReportDesc_FS数组里面的内容,添加自己HID设备报告描述,包括使用的输入和输出端口,报告数据总长度等数据,具体详细说明需要参考USB2.0的协议。

CUSTOM_HID_ReportDesc_FS修改内容

修改设备描述符和报告符长度

3)USBD_CUSTOM_HID_SendReport_FS函数在生成代码中被注释掉了,需要将函数打开,并申明该发送数据的函数。
在接收函数函数中添加需要接收的数据。

在接收函数CUSTOM_HID_OutEvent_FS中添加数据接收代码,即将USB的数据指针指向HID的数据报告符数组首地址

开启HID数据发送函数

添加HID设备接收函数

4)若要提高HID的响应速度,需要修改以下参数。

轮询时间参数修改

5)完成上述修改后,将程序下载进开发板后,可以看到电脑上提示安装驱动,待驱动安装完成后,在BUSHOND软件看可以看到该设备

HID设备

结论

通过BUS HOUND软件可以监控到上位机发送过来的数据被HID模块又返回去了,实验成功。

实验数据结果

标签:

相关文章