当前位置:首页 > 单片机 > 单片机
[导读]首先在之前鼠标的基础上修改设备描述符#include "usbdesc.h"//usb标准设备描述符const U8 USB_DeviceDescriptor[]={ USB_DEVICE_DESC_SIZE, //bLength字段。设备描述符的长度为18(0x12)字节 USB_DEVICE_DESCRIPTOR_T

首先在之前鼠标的基础上修改设备描述符

#include "usbdesc.h"

//usb标准设备描述符

const U8 USB_DeviceDescriptor[]={

USB_DEVICE_DESC_SIZE, //bLength字段。设备描述符的长度为18(0x12)字节

USB_DEVICE_DESCRIPTOR_TYPE, //bDescriptorType字段。设备描述符的编号为0x01

WBVAL(0x0110), //bcdUSB字段。这里设置版本为USB1.1,即0x0110。

0x00, //bDeviceClass字段。我们不在设备描述符中定义设备类,

0x00, //bDeviceSubClass字段。bDeviceClass字段为0时,该字段也为0。

0x00, //bDeviceProtocol字段。bDeviceClass字段为0时,该字段也为0。

USB_MAX_PACKET0, //bMaxPacketSize0字段。端点0的最大包长度。

WBVAL(0x8888), //idVender字段。厂商ID号,我们这里取0x8888,仅供实验用。

WBVAL(0x8877), //idProduct字段。产品ID号,由于是第一个实验,我们这里取0x0001。。

WBVAL(0x0100), // 设备的版本

0x01, //iManufacturer字段。厂商字符串的索引值,为了方便记忆和管理

0x02, //iProduct字段。产品字符串的索引值。刚刚用了1,这里就取2吧。

0x03, //iSerialNumber字段。设备的序列号字符串索引值。

0x01 //bNumConfigurations字段。该设备所具有的配置数。

};

//USB报告描述符的定义

const u8 HID_ReportDescriptor[]=

{

0x06,0xA0,0xFF,//用法页(FFA0h, vendor defined)

0x09,0x01,//用法(vendor defined)

0xA1,0x01,//集合(Application)

0x09,0x02,//用法(vendor defined)

0xA1,0x00,//集合(Physical)

0x06,0xA1,0xFF,//用法页(vendor defined)

//输入报告

0x09,0x03,//用法(vendor defined)

0x09,0x04,//用法(vendor defined)

0x15,0x80,//逻辑最小值(0x80 or -128)

0x25,0x7F,//逻辑最大值(0x7F or 127)

0x35,0x00,//物理最小值(0)

0x45,0xFF,//物理最大值(255)

0x75,0x08,//报告长度Report size (8位)

0x95,0x40,//报告数值(64 fields)

0x81,0x02,//输入(data, variable, absolute)

//输出报告

0x09,0x05,//用法(vendor defined)

0x09,0x06,//用法(vendor defined)

0x15,0x80,//逻辑最小值(0x80 or -128)

0x25,0x7F,//逻辑最大值(0x7F or 127)

0x35,0x00,//物理最小值(0)

0x45,0xFF,//物理最大值(255)

0x75,0x08,//报告长度(8位)

0x95,0x40,//报告数值(64 fields)

0x91,0x02,//输出(data, variable, absolute)

0xC0,//集合结束(Physical)

0xC0//集合结束(Application)

};

//通过上面的报告描述符的定义,我们知道返回的输入报告具有8字节。

//输出报告也有64字节。至于这64字节的数据是干什么用的,就要由用户

//自己来决定了。

///////////////////////////报告描述符完毕////////////////////////////

const U16 HID_ReportDescSize=sizeof(HID_ReportDescriptor);

//usb配置描述符

const U8 USB_ConfigDescriptor[]={

/***************配置描述符***********************/

USB_CONFIGUARTION_DESC_SIZE, //bLength字段。配置描述符的长度为9字节。

USB_CONFIGURATION_DESCRIPTOR_TYPE,//bDescriptorType字段。配置描述符编号为0x02。

//wTotalLength字段。配置描述符集合的总长度,

//包括配置描述符本身、接口描述符、类描述符、端点描述符等。

WBVAL(

USB_CONFIGUARTION_DESC_SIZE+ //配置描述符

USB_INTERFACE_DESC_SIZE+ //接口1描述符

9+ //hid描述符

USB_ENDPOINT_DESC_SIZE+ //端点描述符

USB_ENDPOINT_DESC_SIZE //端点描述符

),

0x01, //bNumInterfaces字段。该配置包含的接口数,只有一个接口。

0x01, //bConfiguration字段。该配置的值为1。

0x00, //iConfigurationz字段,该配置的字符串索引。这里没有,为0。

USB_CONFIG_BUS_POWERED, //bmAttributes字段,该设备的属性

USB_CONFIG_POWER_MA(500), //bMaxPower字段,该设备需要的最大电流量

/*********************第一个接口描述符,hid设备**********************/

USB_INTERFACE_DESC_SIZE, //bLength字段。接口描述符的长度为9字节。

USB_INTERFACE_DESCRIPTOR_TYPE, //bDescriptorType字段。接口描述符的编号为0x04。

0x00, //bInterfaceNumber字段。该接口的编号,第一个接口,编号为0。

0x00, //bAlternateSetting字段。该接口的备用编号,为0。

0x02, //bNumEndpoints字段。非0端点的数目。该接口有2个批量端点

USB_DEVICE_CLASS_HUMAN_INTERFACE, //bInterfaceClass字段。该接口所使用的类。大容量存储设备接口类的代码为0x08。,

0x00, //bInterfaceSubClass字段。该接口所使用的子类。在HID1.1协议中,

//只规定了一种子类:支持BIOS引导启动的子类。

//USB键盘、鼠标属于该子类,子

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

新一代架构实现更快速分析、更清晰洞察与紧凑设计,将数日的数字验证缩短至数小时

关键字: 示波器 DDR5 USB

STM32系列微控制器因其高性能和丰富的外设接口被广泛应用于各类场景。当涉及USB高速(HS)与全速(FS)接口设计时,开发者常因对信号完整性、ESD防护及电源管理的理解不足而陷入调试困境。本文将从原理出发,结合实际案例...

关键字: STM32 USB

STM32的USB高速(HS)接口因其480Mbps的传输速率,广泛应用于数据采集、视频传输等场景。然而,高频信号与电源噪声的耦合常导致EMC(电磁兼容性)问题,表现为辐射超标、通信中断或设备误触发。本文以实际项目为背景...

关键字: STM32 USB EMC

嵌入式系统设计,同时集成SRAM、SD卡和USB接口已成为高性能数据采集与存储设备的常见需求。然而,这三个高速接口的共存对PCB设计提出了严苛挑战——信号完整性、电源噪声抑制和电磁兼容性(EMC)问题相互交织,稍有不慎便...

关键字: SRAM SD卡 USB

2026 年 2 月 2 日,中国——意法半导体STUSB4531 USB输电(PD)受电(sink)控制器引入一种新的混合模式,这项专利技术可简化USB PD 选配功能的设计开发,提升USB供电设备和USB充电设备的附...

关键字: 控制器 USB 无人机

加拿大魁北克市 — 2026 年 1 月 28日— Robotiq 今日正式发布 TSF-85 触觉传感指尖,这是专为旗下最受欢迎型号 2F-85 自适应夹爪打造的全新触觉传感解决方案,为具身智能 (Physical A...

关键字: AI 机器人 USB

【2026年1月27日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日推出新一代USB 2.0外设控制器EZ-USB™ FX2G3,该产...

关键字: USB 控制器 SCB

德州普莱诺 – 2026年1月21日 – Diodes 公司(Nasdaq:DIOD)推出 AP53781 和 AP53782 28V USB Type-C® 电源传输(PD)双重功能电源(DRP)控制器,设计用于管理便...

关键字: 电源 USB Type-C

聚焦新国标移动电源与各类终端便捷通信的核心需求,专业接口芯片厂商沁恒微电子基于二十年连接领域经验积累,推出了充电宝USB、低功耗蓝牙通信等多类型解决方案,支持iOS、Android、HarmonyOS手机平板和Windo...

关键字: 沁恒 新国标 电源 USB 低功耗蓝牙 通信

建立一个空气合成器,使用实时颜色跟踪演奏乐器。移动一个彩色的球通过相机上不同的区域,每个区域触发不同的合成器音符。在飞行中变换乐器——从钢琴到鼓等等。

关键字: 树莓派 扬声器 USB
关闭