[STM32F1] STM32+CUBEMAX+USB_CUSTOM_HID+笔记(1)

[复制链接]
 楼主| 不是张角 发表于 2025-3-31 11:23 | 显示全部楼层 |阅读模式
本帖最后由 不是张角 于 2025-3-31 11:33 编辑

1.在cubemax中打开USB
1213167ea07e2e5f86.png
2.打开USB_DEVICE,选择CUSTON_HID
8106867ea08074aae2.png
3.usbd_custom_hid_if.c这个文件中这个函数添加
8774767ea084e54fef.png
  1. 0x06, 0x00, 0xff,              // USAGE_PAGE (Vendor Defined Page 1) 表示一个报文标签之类的用途类页
  2.     0x09, 0x01,                    // USAGE (Vendor Usage 1) 表示一个报告ID标志
  3.     0xa1, 0x01,                    // COLLECTION (Application) 表示应用集合,要以下面最后的0xc0结束它


  4.     0x09, 0x01,                    //   USAGE (Vendor Usage 1)同下同名解析
  5.     0x15, 0x00,                    //   LOGICAL_MINIMUM (0)  同下同名解析
  6.     0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255) 同下同名解析
  7.     0x95, 0x40,                    //   REPORT_COUNT (64)  同下REPORT_COUNT
  8.     0x75, 0x08,                    //   REPORT_SIZE (8)   同下REPORT_SIZE
  9.     0x81, 0x02,                    //   INPUT (Data,Var,Abs) 表示USB要输入数据到PC的功能


  10.     0x09, 0x01,                    //   USAGE (Vendor Usage 1) 每个功能的一个卷标志
  11.     0x15, 0x00,                    //   LOGICAL_MINIMUM (0)    表示每个传输数据限定为0
  12.     0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)    表示每个传输数据的最大值限定为255
  13.     0x95, 0x40,                    //   REPORT_COUNT (64) 每次接收的数据长度,这里是64位
  14.     0x75, 0x08,                    //   REPORT_SIZE (8)        传输字段的宽度为8bit,表示每个传输的数据范围为0~ffff ffff
  15.     0x91, 0x02,                    //   OUTPUT (Data,Var,Abs) 表示USB设备要接收PC的数据的功能
  16.     0xc0                           // END_COLLECTION  结束标志
4.usbd_customhid.h更改这两个值
  1. #define CUSTOM_HID_EPIN_SIZE                  0x40

  2. #define CUSTOM_HID_EPOUT_SIZE              0x40
5.在usb_device.h添加
  1. extern USBD_HandleTypeDef hUsbDeviceFS;
6.将头文件包含在main函数
  1. #include "usb_device.h"
7.在while(1)中添加测试
  1.   USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, A,2);
A是自定义函数可以自己更改
8.打开Bus Hound测试注意安装后会重启电脑,记得提前保存
2480367ea07808f0e7.png

Bus Hound
梅花香自123 发表于 2025-3-31 22:51 | 显示全部楼层
这些代码主要用于定义设备如何通过 USB 与主机通信,数据交换使用自定义 HID 报告描述符。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝
快速回复 返回顶部 返回列表