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

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.mfbz.cn/a/578389.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++从入门到精通——string类

string类 前言一、为什么学习string类C语言中的字符串示例 二、标准库中的string类string类string类的常用接口说明string类对象的常见构造string类对象的容量操作string的接口测试及使用string类对象的访问及遍历操作下标和方括号遍历范围for遍历迭代器遍历相同的代码&#xf…

元宇宙APP搭建重点,会用到哪些三方服务?

元宇宙APP的搭建是一个综合性的项目,涉及到众多关键要素和第三方服务。以下是一些元宇宙APP搭建的重点,以及可能用到的第三方服务: 一、搭建重点 技术框架的选择与搭建:元宇宙APP需要稳定、高效的技术框架来支撑其运行。这包括前…

上位机图像处理和嵌入式模块部署(树莓派4b与视觉slam十四讲)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 实际使用中,树莓派4b是非常好的一个基础平台。本身板子价格也不是很贵,建议大家多多使用。之前关于vslam,也就是…

Leetcode刷题-(36~40)-Java

算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持刷算法题吧。 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可…

深入理解Python协程:从基础到实战

title: 深入理解Python协程:从基础到实战 date: 2024/4/27 16:48:43 updated: 2024/4/27 16:48:43 categories: 后端开发 tags: 协程异步IO并发编程Pythonaiohttpasyncio网络爬虫 第1章:协程基础 1.1 协程概念介绍 协程(Coroutines&…

【科学研究】读博:一场精神赌博❓

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

C++必修:类与对象(一)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 面向过程与面向对象 1.1. 面向过程 我们之前学习的C语言就是一种面向过程的语…

java中http调用组件深入详解

目录 一、前言 二、http调用概述 2.1 什么是http调用 2.1.1 http调用步骤 2.2 HTTP调用特点 2.3 HTTP调用应用场景 三、微服务场景下http调用概述 3.1 微服务开发中http调用场景 3.2 微服务组件中http的应用 四、常用的http调用组件 4.1 java中常用的http组件介绍 4…

用 Python 创建 Voronoi 图

概述 最常见的空间问题之一是找到距离我们当前位置最近的兴趣点 (POI)。假设有人很快就会耗尽汽油,他/她需要在为时已晚之前找到最近的加油站,解决这个问题的最佳解决方案是什么?当然,驾驶员可以检查地图来找到最近的加油站&…

力扣每日一题-总行驶距离-2024.4.25

力扣题目:总行驶距离 题目链接: 2739.总行驶距离 题目描述 代码思路 直接用数学模拟计算即可 代码纯享版 class Solution {public int distanceTraveled(int mainTank, int additionalTank) {int sum 0;while(additionalTank > 0){if(mainTank > 5){mai…

CATO原理中的数学与魔术(六)——Baby Hummer的拓展一

在上一篇中,我们从CATO原理的数学讲解进入了魔术部分,介绍了其经典作品《Baby Hummer》,相关内容请戳: CATO原理中的数学与魔术(五)——Baby Hummer CATO原理中的数学与魔术(四)——…

leetcode 221 最大正方形面积

示例 3: 输入:matrix [["0"]] 输出:0 # 最大正方形面积 def max_square(matrix):m len(matrix)n len(matrix[0])if m 0 or n 0::return Nonemax_side 1dp [[0] * (n 1) for _ in range(m 1)]for i in range(1, m 1):fo…

2024全新瀚海跑道:矢量图片迅速养号游戏玩法,每天一小时,日转现200

最初我注意到这种玩法,是因为最近在浏览各大平台的视频时,我发现了一种特殊类型的账号,其养号成功率高达90%。这些账号发布的视频内容和数据非常夸张,而且制作起来非常简单,任何人都可以轻松上手。这些账号主要发布矢量…

Spring Web MVC入门(2)——请求

目录 一、传递单个参数 基础类型和包装类型的区别 1、基础类型 (1)不传参 (2)传字符串 2、包装类型 (1)不传参 (2)传字符串 3、小结 二、传递多个参数 三、传递对象 四、…

Leetcode_相交链表

✨✨所属专栏:LeetCode刷题专栏✨✨ ✨✨作者主页:嶔某✨✨ 题目: 题解: 看到这个题目首先我们要排除链表逆置的想法,如图、因为c1节点只有一个next指针,逆置后不可能同时指向a2和b3节点。 其次有的的同学…

阿里前端常考vue面试题汇总_阿里高级vue面试题

改变 ![](https://img-blog.csdnimg.cn/img_convert/b736620bcd29f08f3685022ab5583d8b.webp?x-oss-processimage/format,png)你会发现, **只有改变的栏目才闪烁,也就是进行重绘** ,数据没有改变的栏目还是保持原样,这样就大大节…

WebSocket 深入浅出

WebSocket 深入浅出 1. WebSocket 是什么2. WebSocket 建立连接通信的过程3. WebSocket 和http的联系与区别4. WebSocket 的使用场景及限制 1. WebSocket 是什么 定义:WebSocket 是一种网络通信协议,它允许在单个TCP连接上进行全双工通信。是HTML5规范提…

网络安全实训Day15

写在前面 电子垃圾,堂堂恢复连载。本来不想分天数梳理了,但是最后要写实训报告,报告里还要有实训日记记录每日学的东西,干脆发这里留个档,到时候写报告提供一个思路。 网络空间安全实训-渗透测试 渗透测试概述 定义 一…

关于conda占C盘内存的问题

文章目录 前言一、C盘中.conda文件中的envs二、C盘中.conda文件中的pkgs 前言 最近发现C盘空间越来越少,于是就去清理了一下conda在C盘的存储,不看不知道,一看吓一跳,足足十几G!于是去网上搜索了相关的包能不能删除&a…

(3)C程序可执行文件的生成过程

原文链接:https://www.jianshu.com/p/b7e44f749211 一、可执行文件的生成 我们先通过一个简单C程序,回顾一下可执行文件的生成过程。 ​​​​​​​ ​​​​​​​ 可执行文件的生成过程如下图: 如图,可执行文…