STM32的USB键盘及鼠标的例程介绍
域是独立的,即第一个8bit表示X轴,第二个8bit表示
//Y轴,第三个8bit表示滚轮。Rel表示这些值是相对值。
0x81, 0x06, // INPUT (Data,Var,Rel)
//下面这两个主条目用来关闭前面的集合用。
//我们开了两个集合,所以要关两次。bSize为0,所以后面没数据。
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
//以下注释不包括第一字节报告ID。
//通过上面的报告描述符的定义,我们知道返回的输入报告具有4字节。
//第一字节的低3位用来表示按键是否按下的,高5位为常数0,无用。
//第二字节表示X轴改的变量,第三字节表示Y轴的改变量,第四字节表示
//滚轮的改变量。我们在中断端点1中应该要按照上面的格式返回实际的
//鼠标数据。
};
// USB String Descriptors
const u8 HID_StringLangID[HID_SIZE_STRING_LANGID]=
{
HID_SIZE_STRING_LANGID,
USB_STRING_DESCRIPTOR_TYPE,
0x09,
0x04
};
const u8 HID_StringVendor[HID_SIZE_STRING_VENDOR]=
{
HID_SIZE_STRING_VENDOR,
USB_STRING_DESCRIPTOR_TYPE,
'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0,
'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0,
'c', 0, 's', 0
};
const u8 HID_StringProduct[HID_SIZE_STRING_PRODUCT] =
{
HID_SIZE_STRING_PRODUCT, /* bLength */
USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
0x34, 0x6c, //水
0x62, 0x97, //面
0x4b, 0x4e, //之
0x0b, 0x4e, //下
0x84, 0x76, //的
0x55, 0x00, //U
0x53, 0x00, //S
0x42, 0x00, //B
0x4b, 0x6d, //测
0xd5, 0x8b, //试
};
u8 HID_StringSerial[HID_SIZE_STRING_SERIAL] =
{
HID_SIZE_STRING_SERIAL, /* bLength */
USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
0x73, 0x00, //s
0x6e, 0x00, //n
0x69, 0x00, //i
0x63, 0x00, //c
0x5f, 0x00, //_
0x6b, 0x00, //k
0x84, 0x76, //的
0x55, 0x00, //U
0x53, 0x00, //S
0x42, 0x00, //B
0x2e, 0x95, //键
0xd8, 0x76, //盘
};
- RS232、RS485和RS422介绍与比较(12-14)
- ARM处理器模式介绍和模式切换(11-28)
- EZ-USB FX2单片机CY7C68013的特性介绍(10-15)
- MCS-51单片机的中央处理器CPU介绍(05-13)
- PIC12F683微控制器实验板介绍(11-10)
- 详细介绍用51单片机解密任何红外遥控器(10-23)