点击1处,选中后Device(FS),3处选择HID,其他参数默认。 配置USB 时钟 USB时钟需设置为48MHz。 增加堆栈大小,防止溢出 3. 编辑代码 更改为键盘。 设备描述符改为键盘 usbd_hid.c文件中USBD_HID_CfgFSDesc[USB_HID_CONFIG_DESC_SIZ]对应值由0x02改为0x01。 报告描述符改为键盘 usbd_hid.c文件中HID_MOUSE...
打开生成的工程代码,由于CubeMX默认将设备描述为了鼠标设备,可以在usbd_hid.c文件中找到一个名为HID_MOUSE_ReportDesc的数组,该数组正式鼠标报告设备描述符,因此需要将该设备描述符修改为键盘的设备描述符,同时也应该修改该报告设备描述符数组的大小HID_MOUSE_REPORT_DESC_SIZE ,具体修改内容如下所示(注释2) /*修改...
4.2XX_OFF_HID_DESC是HID描述符在usb_des.h文件中配置描述符函数CustomHID_ConfigDescriptor的偏移量 所以在usb_des.h 文件定义: //ONE_DESCRIPTOR XX_Hid_Descriptor 偏移量定义 #define mouse_OFF_HID_DESC 0x12 //18 #define pen_OFF_HID_DESC 0x28 //43 #define HID_driver_OFF_HID_DESC 0x44 //68...
USBD_CUSTOM_HID_HandleTypeDef *hhid_temp=(USBD_CUSTOM_HID_HandleTypeDef*)hUsbDeviceFS.pClassData; //STM32会将数据存储的位置 usb_status_t *usb_status_temp=get_usb_status();//自己定义的数组存储位置 uint8_t temp=0; for(;temp<64;temp++) { usb_status_temp->usb_receive_data.usb_buffer...
3>. CLOCK Configuration 配置如下: 选择HSE,PLL倍频为9, USB分频为1.5=48M 4>. GPIO口配置, 配置LED0,LED1和KEY0脚位 5>. USB功能选中 6>. USB_DEVICE --> 选择HID功能 . 参数设置保持默认不变. 7>. 中断配置保持默认. 8>. 生成代码配置 ...
STM32的USB库将SETUP包放在一起处理,首先是枚举阶段 USBD_OTG_ISR_Handler --> gintr_status.b....
connectivity这里打开usb,勾选Device,参数保持默认即可。 Middleware and Software Packs这里选择USB_DEVICE,Mode这里选择Custom HID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也可以。 之后配置好时钟和其他设置,生成代码即可。 2、 我用的vscode+platformio开发环境,新建工程并打开导出的代码。Cubemx和...
勾选:初始化代码生成在对应的外设文件。 如 GPIO 初始化代码生成在 gpio.c 中。 点击GENERATE CODE 生成代码 六、修改usbd_hid.c 打开工程文件夹Middlewares/USB_Device_Library下usbd_hid.c文件 6.1 修改接口描述符(可跳过) HID设备的描述符除了5个USB的标准描述符(设备描述符、配置描述符、接口描述符、端点...
STM32例程之USBHID双向数据传输(源码下载) 将STM32的USB枚举为HID设备。STM32使用3个端点,端点0用于枚举用,端点1和2用于数据的发送和接收。端点长度为64,也就是单次最多可以传输64个字节数据。STM32获取上位机下发的数据并将该数据通过USB原样返回,同时将数据打印输出。上位机程序通过调用windows的API实现对HID设备...