1、USB设备功能控制 启用USB设备功能:在CubeMX中启用USB设备功能,并选择相应的设备类,如HID(Human Interface Device)类、大容量存储(Mass Storage)类等。 编写HID报告描述符:若选择HID类,需编写HID报告描述符以定义设备功能。 实现数据传输函数:编写USBD_HID_SendReport函...
点击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...
在STM32上实现自定义HID(Human Interface Device)设备需要多个步骤,包括理解HID设备的基本概念、配置STM32项目、编写代码、测试与调试。以下是详细的步骤和示例代码: 1. 理解HID设备的基本概念和工作原理 HID设备是一类能够直接与人交互的设备,如键盘、鼠标等。它们通过USB与主机通信,通常不需要安装驱动程序即可工作。HI...
STM32F103芯片集成了USB2.0 Full-Speed接口,可以用作与外部设备进行通信,如电脑。基本连接如下:其中,V3P3是USB接口VBUS通过LDO转换为3.3V。 因为STM32F103内部没有集成USB2.0 Full-Speed的上拉电阻,因此外接上拉电阻(详细见上篇文章“USB2.0系列—HID设备”),然后将MCU_DM和MCU_DP分别接MCU的DM和DP,即可实现USB2.0...
usbd_hid.h / usbd_hid.c 文件中,这两个文件就是库中默认的HID鼠标设备了,其中有HID描述符和...
关于数据传输,HID设备是采用轮询方式传输的,ST默认20ms速度实在不敢恭维,还得要改一下枚举时的声明(这里修改跟CUSTOM_HID_FS_BINTERVAL一致,旧版STM32Cumebx中没有这项配置修改可以直接修改usbd_conf.h文件里的CUSTOM_HID_FS_BINTERVAL),修改usbd_customhid.c文件(如果是新版STM32cubemx生成的工程的话,已经可以...
stm32cubemx UsbHid有叹号 STM32 USB设计 首先,我们来看看usb的工作过程。 当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端点描述(endpoint descriptor)等。这些...
单击Pinout & Configuration页面左边功能分类栏目中Middleware and Software Packs/USB DEVICE,将其模式配置为Human Interface Device Class (HID)(人机接口设备类),其他所有参数保持默认即可,具体配置如下图所示 HID_FS_BINTERVAL(指定中断传输的轮询间隔):可选0x01 ~ 0xFF,以毫秒为单位,此处设置为0XA表示USB主机每10...
connectivity这里打开usb,勾选Device,参数保持默认即可。 Middleware and Software Packs这里选择USB_DEVICE,Mode这里选择Custom HID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也可以。 之后配置好时钟和其他设置,生成代码即可。 2、 我用的vscode+platformio开发环境,新建工程并打开导出的代码。Cubemx和...
connectivity这里打开usb,勾选Device,参数保持默认即可。 Middleware and Software Packs这里选择USB_DEVICE,Mode这里选择Custom HID,参数如果懂可以根据需求改,不懂保持默认,后边我们在代码里改也可以。 之后配置好时钟和其他设置,生成代码即可。 2、我用的vscode+platformio开发环境,新建工程并打开导出的代码。Cubemx和pla...