TMC32_QJB/HID/HID_init.c
2026-04-30 16:23:12 +08:00

161 lines
3.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************************
* Copyright (c) 2016, Beijing Tongfang Microelectroics Co., Ltd.
* All rights reserved.
* Module: HID descripter and global parameter
* Author: Yang Song
* Version: V1.0
* History:
* 2016-09-22 Original version
********************************************************************************/
#include "global.h"
const u8 usbHidPosInterfaceDescriptor[] = {
0x09,0x04,0x00,0x00,0x02,0x03,0x00,0x00,0x00,//以前字符串索引为0x07,导致苹果和部分安卓读取失败产生兼容性问题不支持的字符串都写00就好。
};
const u8 usbHidKbdInterfaceDescriptor[] = {
0x09,0x04,0x00,0x00,0x01,0x03,0x01,0x01,0x00,//字符串没有就不要写0x07了会导致枚举不成功。凡是没有的字符串一律写0.
};
const u8 usbHidPosDeviceClassDescriptor[] = {
0x09,0x21,0x10,0x01,0x00,0x01,0x22,HID_POS_RPT_LEN,0x00,
};
const u8 usbHidKbdDeviceClassDescriptor[] = {
0x09,0x21,0x10,0x01,0x00,0x01,0x22,HID_KBD_RPT_LEN,0x00,
};
const u8 usbHidPosEndpointDescriptor[] = {
14,
0x07,0x05,0x82,0x03,HIDINTPKTSIZE,0x00,0x04,
0x07,0x05,0x01,0x03,HIDINTPKTSIZE,0x00,0x04,
};
const u8 usbHidKbdEndpointDescriptor[] = {
6,
0x07,0x05,0x82,0x03,HIDINTPKTSIZE,0x00,//IN ep
//0x07,0x05,0x01,0x03,HIDINTPKTSIZE,0x00,0x02,
};
//====================================================
//报告描述符(input report/output report)
//const u8 hidReportDescriptor[HID_RPT_LEN] =
//{
// 0x05, 0x01, // Usage Page (vendor defined FFA0) (Global)
// 0x09, 0x06, // Usage (vendor defined) (Local)
// 0xa1, 0x01, // Collection (Application) (Main)
// 0x05, 0x07, // Usage Page (vendor defined FFA1) (Global)
// //The input report
// 0x19, 0xe0, // usage - vendor defined (Local)
// 0x29, 0xe7, // logical minimum (0) (Local)
// 0x15, 0x00, // logical maximum (255) (Local)
// 0x25, 0x01, // Report Size (8) (bits) (Local)
// 0x95, 0x08, // Report Count (255) (fields) (Local)
// 0x75, 0x01, // Input (Data, Variable, Absolute) (Main)
// //The output report
// 0x81, 0x02, // usage - vendor defined (Local)
// 0x95, 0x01, // logical minimum (0) (Local)
// 0x75, 0x08, // logical maximum (255) (Local)
// 0x81, 0x03, // Report Size (8) (bits) (Local)
// 0x95, 0x06, // Report Count (255) (fields) (Local)
// 0x75, 0x08, // Output (Data, Variable, Absolute) (Main)
//0x15, 0x00,
//0x25, 0xff,
//0x05, 0x07,
//0x19, 0x00,
//0x29, 0x65,
//0x81, 0x00,
//0x25, 0x01,
//0x95, 0x05,
//0x75, 0x01,
//0x05, 0x08,
//0x19, 0x01,
//0x29, 0x05,
//0x91, 0x02,
//0x95, 0x01,
//0x75, 0x03,
//0x91, 0x03,
// 0xC0 // End Collection (Main)
//};
const u8 usbHidKbdReportDescriptor[HID_KBD_RPT_LEN] =
{
0x05, 0x01,
0x09, 0x06,
0xa1, 0x01,
0x05, 0x07,
0x19, 0xe0,
0x29, 0xe7,
0x15, 0x00,
0x25, 0x01,
0x75, 0x01,
0x95, 0x08,
0x81, 0x02,
0x95, 0x01,
0x75, 0x08,
0x81, 0x03,
0x95, 0x05,
0x75, 0x01,
0x05, 0x08,
0x19, 0x01,
0x29, 0x05,
0x91, 0x02,
0x95, 0x01,
0x75, 0x03,
0x91, 0x03,
0x95, 0x06,
0x75, 0x08,
0x15, 0x00,
0x25, 0xFF,
0x05, 0x07,
0x19, 0x00,
0x29, 0x65,
0x81, 0x00,
0xc0
};
const u8 usbHidPosReportDescriptor[HID_POS_RPT_LEN] =
{
0x05, 0x8c,
0x09, 0x01,
0xa1, 0x01,
0x09, 0x07,
0xa1, 0x02,
0x85, 0x01,
0x15, 0x00,
0x26, 0xff,
0x00, 0x75,
0x08, 0x95,
0x3f, 0x09,
0xfe, 0x82,
0x02, 0x01,
0xc0, 0x09,
0x08, 0xa1,
0x02, 0x85,
0x02, 0x15,
0x00, 0x26,
0xff, 0x00,
0x75, 0x08,
0x95, 0x3f,
0x09, 0xfe,
0x82, 0x02,
0x01, 0xc0,
0x09, 0x06,
0xa1, 0x02,
0x85, 0x04,
0x15, 0x00,
0x26, 0xff,
0x00, 0x75,
0x08, 0x95,
0x3f, 0x09,
0x00, 0x91,
0x96, 0xc0,
0xc0
};