资源简介
使用STM32的固件库进行USB-HID组合设备进行开发,3个HID接口。通过bus hound 来抓包分析发现 PC 发送set idle命令下去后,从设备没有响应,所以PC变为stall状态。通过分析源代码和HID协议,修补漏洞之后可以在任何电脑上枚举成功。里面有具体的参考文件及修改好的代码,有什么问题欢迎咨询我。谢谢。
代码片段和文件信息
/* Includes ------------------------------------------------------------------*/
#include “hw_config.h“
#include “usb_lib.h“
#include “usb_conf.h“
#include “usb_prop.h“
#include “usb_desc.h“
#include “usb_pwr.h“
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
uint32_t ProtocolValue;
__IO uint8_t EXTI_Enable;
__IO uint8_t Request = 0;
uint8_t Report_Buf[2];
/* -------------------------------------------------------------------------- */
/* Structures initializations */
/* -------------------------------------------------------------------------- */
DEVICE Device_Table =
{
EP_NUM
1
};
DEVICE_PROP Device_Property =
{
CustomHID_init
CustomHID_Reset
CustomHID_Status_In
CustomHID_Status_Out
CustomHID_Data_Setup
CustomHID_NoData_Setup
CustomHID_Get_Interface_Setting
CustomHID_GetDeviceDescriptor
CustomHID_GetConfigDescriptor
CustomHID_GetStringDescriptor
0
0x40 /*MAX PACKET SIZE*/
};
USER_STANDARD_REQUESTS User_Standard_Requests =
{
CustomHID_GetConfiguration
CustomHID_SetConfiguration
CustomHID_GetInterface
CustomHID_SetInterface
CustomHID_GetStatus
CustomHID_ClearFeature
CustomHID_SetEndPointFeature
CustomHID_SetDeviceFeature
CustomHID_SetDeviceAddress
};
ONE_DEscriptOR Device_Descriptor = //用于获得设备描述符
{
(uint8_t*)CustomHID_DeviceDescriptor
CUSTOMHID_SIZ_DEVICE_DESC
};
ONE_DEscriptOR Config_Descriptor = //用于获得配置描述符
{
(uint8_t*)CustomHID_ConfigDescriptor
CUSTOMHID_SIZ_CONFIG_DESC
};
/************分别获取3个HID的报告描述符****************/
//ONE_DEscriptOR ALL_HID_Report_Descriptor[3] = //用于获得报告描述符
// {
// {(uint8_t *)mouse_ReportDescriptormouse_SIZ_REPORT_DESC}
// {(uint8_t *)pen_Report_Descriptorpen_SIZ_REPORT_DESC}
// {(uint8_t *)HID_driver_Report_DescriptorHID_driver_SIZ_REPORT_DESC}
// };
ONE_DEscriptOR mouse_Report_Descriptor = //用于获得报告描述符
{
(uint8_t *)mouse_ReportDescriptor
mouse_SIZ_REPORT_DESC
};
ONE_DEscriptOR pen_Report_Descriptor =
{
(uint8_t *)pen_ReportDescriptor
pen_SIZ_REPORT_DESC
};
ONE_DEscriptOR HID_driver_Report_Descriptor =
{
(uint8_t *)HID_driver_ReportDescriptor
HID_driver_SIZ_REPORT_DESC
};
/************分别获取3个HID的配置描述符中的HID描述****************/
//mouse_OFF_HID_DESC/pen_OFF_HID_DESC/HID_driver_OFF_HID_DESC
//是HID描述在配置描述符中的偏移量
ONE_DEscriptOR mouse_Hid_Descriptor =
{
(uint8_t*)CustomHID_ConfigDescriptor + mouse_OFF_HID_DESC
CUSTOMHID_SIZ_HID_DESC
};
ONE_DESCRIP
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-23 15:34 1_ST_USB\
文件 1002149 2019-03-21 11:27 1_ST_USB\11_STM32F10xxx USB开发工具包.pdf
文件 494974 2018-09-28 14:58 1_ST_USB\6_STM32_USB_资源汇总.pdf
文件 18687 2019-03-23 15:21 1_ST_USB\usb_prop.c
文件 3111285 2019-03-23 14:04 1_ST_USB\USB培训_Part1 协议.pdf
文件 2871158 2019-03-23 14:09 1_ST_USB\USB培训_Part2 USB IP及其库的使用 .pdf
文件 1507218 2019-03-23 14:09 1_ST_USB\USB培训_Part3 USB OTG IP及其库的使用.pdf
文件 4267324 2019-03-23 14:07 1_ST_USB\USB进阶培训_Part1_USB类的介绍.pdf
文件 989598 2019-03-23 14:08 1_ST_USB\USB进阶培训_Part2_USB复合设备的概念及CDC MSC的讲解.pdf
文件 1578416 2019-03-23 14:08 1_ST_USB\USB进阶培训_Part3_HandsOn_一步一步跟着我,从CubeMX生成CDC MSC复合设备.pdf.pdf
相关资源
- STM32+ESP8266智能农场i项目开发程序
- stm32中文开发手册
- 基于stm32的三级菜单
- STM32F1 GPS模块NEO-7M
- STM32-US-100超声波程序
- stm32智能搬运码垛小车
- 基于stm32的gps导航
- STM32与ZigBee串口通信LCD显示程序
- 基于stm32的烟雾传感的监测
- STM32L0系列数据手册中文版
- STM32F4小四轴代码
- 基于stm32F407的i2c双机通讯
- STM32脱机雕刻机源代码
- STM32中文参考手册_V10.pdf
- stm32门禁上位机代码
- stm32F407 SPI1/SPI2 DMA 方式读写 CH376S
- stm32的APDS9960颜色识别、舵机、电机
- STM32F407 W8782模块驱动代码
- 基于STM32的数字示波器设计原理图+p
- stm32智能安防系统
- oled7针+gy-30参考代码
- 数字示波器—普中STM32开发板
- STM32F427 ,429中文参考手册
- AD9850模块资料
- MPU6050倾角检测+中断唤醒带NB模块
- 使用vs1063在STM32F103平台上实现WAV录音
- stm32f107 lan8720
- STM32F10x_StdPeriph_Lib_V3.5.0 STM32F10x固件库
- STM32F103 uCOS-II移植源码
- 基于stm32f103 usb 的Win7系统触摸屏程序
评论
共有 条评论