stm32——自定义HID设备
一、开发环境
硬件平台:stm32f767
软件平台:keil5,cubmx
二、cubemx创建工程
1、配置RCC
2、USB_OTG_FS,选择Device_Only模式
3、Middleware——USB_DEVICE
4、配置一个外部中断按键作为输入
5、配置时钟与生成代码
三、工程代码修改
1、打开usbd_custom_hid_if.c 文件,把CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] 数组中的描述符修改为
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{/* USER CODE BEGIN 0 */0x05, 0x01, // USAGE_PAGE (Generic Desktop)0x09, 0x00, // USAGE (Undefined)0xa1, 0x01, // COLLECTION (Application)0x09, 0x00, // USAGE (Undefined)0x15, 0x00, // LOGICAL_MINIMUM (0)0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)0x95, 0x01, // REPORT_COUNT (1)0x75, 0x08, // REPORT_SIZE (8)0x81, 0x00, // INPUT (Data,Ary,Abs)0x09, 0x00, // USAGE (Undefined)0x15, 0x00, // LOGICAL_MINIMUM (0)0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)0x91, 0x00, // OUTPUT (Data,Ary,Abs)/* USER CODE END 0 */0xC0 /* END_COLLECTION */
};
修改宏USBD_CUSTOM_HID_REPORT_DESC_SIZE的长度为29
2、打开此函数的注释
int8_t USBD_CUSTOM_HID_SendReport_FS(uint8_t *report, uint16_t len)
{return USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, report, len);
}
3、在按键中断中发送字符
uint8_t send_data = 1;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin == KEY0_Pin){USBD_CUSTOM_HID_SendReport_FS(&send_data, 1);}
}
4、完整工程代码
https://download.csdn.net/download/huhuandk/11980721
stm32——自定义HID设备相关推荐
- STM32的USB例程JoyStickMouse改成自定义HID设备
简介 USB HID类是USB设备的一个标准设备类,包括的设备非常多.HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标.USB键盘.USB游戏操纵杆等.但HID设备 ...
- stm32自定义usb_HID设备
Usb自定义HID设备(游戏控制器)总结工程是由cubemx创建的不会创建的可以参考文章最后链接.该链接教程为未定义输入输出设备,本教程为游戏控制器属于输入设备.在建立好USB工程之后,我们主要修改的 ...
- STM32 自定义HID USB设备的实现
最近需要使用STM32开发一个设备通过HID协议与主机通信,于是开始学习USB,发现USB这个体系实在太庞大了,直接看USB的例程根本看不懂,完全找不到突破口,最后在网上找到一本不错的书<圈圈教 ...
- USB自定义HID设备实现-STM32
该文档使用USB固件库,在其基础上进行了自己的定制,完成了一个USB-HID设备,首先是usb_desc.c文件,里面存放了usb各种描述符的存在 #include "usb_desc.h& ...
- STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32端口初始化
最近产品需要一个USB主机测试治具,所以需要做一个USB HOST去读取HID设备的数据,由于以前也没做过USB方面的项目,对这一块也不是很熟悉,因此遇到了很多困难,所幸的是经过两天半的努力,最终完成 ...
- STM32 USB复合设备,USB键盘+自定义HID设备
上面是我的微信和QQ群,欢迎新朋友的加入. 最近研究USB复合设备 主要是把键盘和电脑音量控制两个东西给合并成一个设备 首先要知道的一点的是,不论是键盘.鼠标.或者这个标准的HID用户控制设备,本质都 ...
- USB自定义HID设备实现-LPC1768
首先在之前鼠标的基础上修改设备描述符 #include "usbdesc.h" //usb标准设备描述符 const U8 USB_DeviceDescriptor[] = { U ...
- STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32配置CH375B接口函数
接着上一篇上传,这个是STM32配置CH375B时用到的接口函数 头文件: #ifndef __BSP_CH375_H__ #define __BSP_CH375_H__#include " ...
- USB协议学习笔记 - CUSTOM HID 设备
简介 这里使用STM32平台进行USB 协议的学习与USB 设备的调试开发 USB HID设备,协议较固定,无法实现数据的自由接收与发送 USB CUSTOM HID设备(自定义HID协议)可以实现简 ...
最新文章
- 涉密文件检查工具_肇庆高要销毁资料文件公司粉碎销毁文件资料公司欢迎您
- JavaMail邮件发送不成功的那些坑人情况及分析说明
- 动态构建siteMap(导航,asp.net)
- http强制跳转https,POST请求变成GET
- 每日一题(2)—— -2与2的比较
- 中blur函数_Comonad在图像处理中的应用
- python生成json_python之生成多层json结构的实现
- MIT计算机专业本硕连读几年,2020年麻省理工学院读研要多久
- Myeclipse打断点太多,不知道怎么一次性全删除
- 全国计算机等级内容,全国计算机等级内容
- 利用jmeter对mysql数据库进行压力测试
- HDU 3966 dfs序+LCA+树状数组
- 八、JVM视角浅理解并发和锁
- oracle服务器配置及优化
- SUFFER软件测试工程师,Ubuntu9.0.4下FreeSurfer的安装(转)
- Diamond软件的使用--(1)软件安装及配置
- Python渗透测试之流量分析:流量嗅探工具编程
- git报错:remote: warning: Large files detected. / 移动文件夹
- CorelDraw手表实例实操作让你全面了解技术的综合应用
- java 序列化_java的序列化机制,这一篇文章就够了