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

2024-04-27 10:44

本文主要是介绍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日

这篇关于stm32 hid自定义接收发送程序开发过程记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940288

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public