[STM32F1]

STM32+CUBEMAX+USB_CUSTOM_HID+笔记(1)

[复制链接]
340|2
手机看帖
扫描二维码
随时随地手机跟帖
不是张角|  楼主 | 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
0x06, 0x00, 0xff,              // USAGE_PAGE (Vendor Defined Page 1) 表示一个报文标签之类的用途类页
    0x09, 0x01,                    // USAGE (Vendor Usage 1) 表示一个报告ID标志
    0xa1, 0x01,                    // COLLECTION (Application) 表示应用集合,要以下面最后的0xc0结束它


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


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

#define CUSTOM_HID_EPOUT_SIZE              0x40
5.在usb_device.h添加
extern USBD_HandleTypeDef hUsbDeviceFS;
6.将头文件包含在main函数
#include "usb_device.h"
7.在while(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

粉丝