stm32 hid自定义接收发送程序开发过程记录

news/2024/9/22 21:09:44/

cubleMX配置如下

修改端点描述符一次传输的数据大小

 根据cubelMX标准在这里修改

 编译错误

 直接修改(因为没有使用nodef )编译通过

 修改报告描述符(默认的描述符无法传输数据)

 

 参考:USB协议详解第10讲(USB描述符-报告描述符)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weiaipan1314/article/details/112504129

 USB鼠标HID描述符以及数据格式_hidusb输出的数据类型-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/wingceltis/article/details/103114696

 实际输入的内容

对应代码

0x05, 0x01, // USAGE_PAGE (Generic Desktop)0x09, 0x00, // USAGE (none)0xa1, 0x01, // COLLECTION (Application)   0x05, 0x01, // #1 USAGE_PAGE (Generic Desktop)0x09, 0x30, // USAGE(x)0x15, 0x00, // LOGICAL_MINIMUM (0)0x25, 0xFF, // LOGICAL_MAXIMUM (255)0x75, 0x08, // REPORT_SIZE (8)0x95, 0x40, // REPORT_COUNT (64)0x81, 0x02, // INPUT (Data,Var,Abs)0x05, 0x01, // #2 USAGE_PAGE (Generic Desktop)0x09, 0x31, // USAGE(y)0x15, 0x00, // LOGICAL_MINIMUM (0)0x25, 0xFF, // LOGICAL_MAXIMUM (255)0x75, 0x08, // REPORT_SIZE (8)0x95, 0x40, // REPORT_COUNT (64)0x91, 0x02, // OUTPUT (Data,Var,Abs)0xc0 // END_COLLECTION

修改设备描述符大小为35(上面一共35个字符)

hid收发工具

【分享】一个HID数据收发调试工具 (stmicroelectronics.cn)icon-default.png?t=N7T8https://shequ.stmicroelectronics.cn/thread-613811-1-1.html

使用CubeMX 生成 USB从机 Custom HID 工程(STM32F407ZE )_stm32f407 hid bug-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/u014285530/article/details/117931003

 修改发送函数

 修改发送buf大小(注意必须在此处修改)

 错误的修改位置(由于原有模板已经在外部定义了此参数,因此不能再这里修改,否则会出错,程序死机)

 正确配置之后的通信测试

参考链接stm32 USB系列-HID开发_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1TR4y1V7ps/?spm_id_from=333.788&vd_source=e821a225c7ba4a7b85e5aa6d013ac92e

特此记录

anlog

2024年4月26日


http://www.ppmy.cn/news/1445704.html

相关文章

BUUCTF_[BSidesCF 2020]Had a bad day

[BSidesCF 2020]Had a bad day 1.一看题目直接尝试文件包含 2.直接报错,确实是存在文件包含漏洞 http://307b4461-36d6-443f-879a-68803a57f721.node5.buuoj.cn:81/index.php?categoryphp://filter/convert.base64-encode/resourceindex strpos() 函数查找字符串…

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件

前言 在上一篇文章中,我们实现了通过etcd来同时指定多个不同的有关分区与日志文件的路径,但是锁着一次读取配置的增多,不可避免的出现了一个问题:我们如何来监控多个日志文件,这样原来的tailFile模块相对于当下场景就…

Django框架模板位置(默认自定义)

1、默认模板位置 如果当前项目名称为learning_log 在该项目下,有一个应用,名称为learning_logs 那么Django默认的‘模板位置’是: .\learning_log\learning_logs\templates\learning_logs 2、自定义模板位置 修改项目learning_log的sett…

【目标检测】Yolov7 的 ELAN 和 E-ELAN 模块演进(涉及到分组卷积,cardinality,梯度路径)

感觉从 YOLOv6 开始,YOLOv6 系列感觉优化点都着重于推理速度上面,YOLOv6 的 RepBlock 重参数化,给我的感觉就是算子融合进行加速。而 YOLOv7,为了在各种架构的边缘设备上获得极致的推理速度。 YOLOv7 的工作: 新的 b…

写一个函数,求两个整数之和,要求在函数体内不得使用 +、-、×、÷ 四则运算符号。

class Solution { public: int add(int num1, int num2){ int res 0; int Cin 0; int tmp 1; for(int i 0;i<32;i){ int a num1 & tmp;//取得num1和num2的第i位的值 int b num2 & tmp; …

SpringSecurity授权流程(自己做笔记用的)

目录 一、RABC表的设计 二、查询权限并添加Security中 三、通过注解进行授权 四、授权进行前端访问 一、RABC表的设计 基本概念就是五个表&#xff1a; 用户表&#xff1a;users 角色表&#xff1a;role 权限表&#xff1a;permission 还需要两种关系表&#xff0c;才能通过…

Python数组类+AI插件

目录 规划实现初始化插入删除查找 AI插件单测注释调优建议 小结 规划 先想清楚都写哪些&#xff0c;然后再动手操作 用Python写了一个简单数组类&#xff0c;首先思考下都写哪些功能&#xff1a; 插入删除查找用插件做单元测试和写注释 目的只是实现一个简单的数组类&#x…

移动应用安全

移动应用安全 移动应用安全主要关注Android、iOS、Windows Phone等平台上移动应用软件安全状态。它涉及应用程序在其设计运行的平台上下文中的安全问题、它们使用的框架以及预期的用户集。所有主流的移动平台都提供大量可选的安全控制&#xff0c;旨在帮助软件开发人员构建安全…