当前位置: 首页 > news >正文

STM32 CubeMX USB_(HID 鼠标和键盘)

STM32 CubeMX


STM32 CubeMX USB_HID(HID 鼠标和键盘)

  • STM32 CubeMX
    • 前言
  • 《鼠标小节》
  • 一、STM32 CubeMX 设置
    • USB时钟设置
    • USB使能
    • UBS功能选择
  • 二、代码部分
    • 添加代码
    • 鼠标发送给PC的数据解析
    • 实验效果
  • 《键盘小节》
    • STM32 CubeMX 设置(同上)
    • 代码部分



前言

STM32 CubeMX 自动生成的USB_HID是鼠标类型的:键盘类型要做一点小修改;

《鼠标小节》

一、STM32 CubeMX 设置

USB时钟设置

在这里插入图片描述

USB使能

在这里插入图片描述

UBS功能选择

二、代码部分

在这里插入图片描述
在这里插入图片描述

添加代码

 
#include "usbd_hid.h"extern USBD_HandleTypeDef hUsbDeviceFS;uint8_t HID_biff[4];
        HAL_Delay(1000);USBD_HID_SendReport(&hUsbDeviceFS,HID_Mouse_buff,4);//按下鼠标右键HID_Mouse_buff[0]=0x08;//恒为1HID_Mouse_buff[1]=10;//X+1HID_Mouse_buff[2]=10;//Y+1HID_Mouse_buff[3]=0; //鼠标滑轮

鼠标发送给PC的数据解析

数据格式
鼠标发送给PC的数据每次4个字节
BYTE1 BYTE2 BYTE3 BYTE4
定义分别是:
BYTE1 –
|–bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|–bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|–bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动
|–bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动
|–bit3: 恒为1
|–bit2: 1表示中键按下
|–bit1: 1表示右键按下
|–bit0: 1表示左键按下
BYTE2 – X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
BYTE3 – Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 – 滚轮变化。BYTE1高5位是可以不用关注的,一般这5bit 在HID描述符中都是作为填充位使用,置0即可。

实验效果

请添加图片描述

《键盘小节》

STM32 CubeMX 设置(同上)

代码部分

参考:
STM32CubeMX学习笔记
USB鼠标HID描述符以及数据格式

相关文章:

STM32 CubeMX USB_(HID 鼠标和键盘)

STM32 CubeMX STM32 CubeMX USB_HID(HID 鼠标和键盘) STM32 CubeMX前言 《鼠标小节》一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择 二、代码部分添加代码鼠标发送给PC的数据解析实验效果 《键盘小节》STM32 CubeMX 设置(同上&#xf…...

[PM]敏捷开发之Scrum总结

在项目管理中,不少企业和项目团队也发现传统的项目管理模式已不能很好地适应今天的项目环境的要求。因此,敏捷项目管理应运而生,本文将为大家介绍Scrum敏捷项目管理以及应用方法。 什么是Scrum敏捷项目管理 敏捷项目管理作为新兴的项目管理模…...

大数据Flink(五十七):Yarn集群环境(生产推荐)

文章目录 Yarn集群环境(生产推荐) 一、准备工作...

web集群学习:源码安装nginx配置启动服务脚本

1、源码安装nginx,并提供服务脚本。 1、源码安装会有一些软件依赖 (1)检查并安装 Nginx 基础依赖包 pcre-devel 、openssl-devel # rpm -qa | egrep pcre-devel | openssl-devel(2)安装 Nginx 所需的 pcre 库 正则支…...

LNMP

lNmp安装: 一、LNMP LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件, 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务…...

Python网络爬虫在信息采集中的应用及教程

Python网络爬虫在信息采集中的应用与法律警告 摘要 随着互联网的发展,我们每天都面临着海量的信息。这些信息蕴含着无尽的价值,而要从中获取有用的数据,网络爬虫就成了我们的得力助手。Python作为一门简单而又强大的编程语言,被…...

云主机测试Flink磁盘满问题解决

问题描述: 使用云主机测试Flink时,根目录满了。 经排查发现运行Flink任务后根目录空间一直在减少,最后定位持续增加的目录是/tmp目录 解决方法: 修改Flink配置使用一个相对较大的磁盘目录做为Flink运行时目录 # Override the…...

iOS开发-NSOperationQueue实现上传图片队列

iOS开发-NSOperationQueue实现上传图片队列 在开发中,遇到发帖需要上传图片,需要上传队列,这时候用到了NSOperationQueue 一、NSOperation与NSOperationQueue 什么NSOperation NSOperation为控制任务状态、优先级、依赖关系以及任务管理提…...

通过 CCIP 构建跨链应用(5 个案例)

Chainlink 的跨链互操作性协议(CCIP)是一种新的通用跨链通信协议,为智能合约开发人员提供了以最小化信任的方式在区块链网络之间传输数据和通证的能力。 目前,部署在多个区块链上的应用程序面临着资产、流动性和用户的碎片化问题…...

基于 yolov8 的人体姿态评估

写在前面 工作中遇到,简单整理博文内容为使用预训练模型的一个预测 Demo测试图片来源与网络,如有侵权请告知理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停…...

计算机视觉(六)图像分类

文章目录 常见的CNNAlexnet1乘1的卷积 VGG网络Googlenet(Inception V1、V2、V3)全局平均池化总结 Resnet、ResnextResNet残差网络ResNeXt网络 应用案例VGGResnet 常见的CNN Alexnet DNN深度学习革命的开始 沿着窗口进行归一化。 1乘1的卷积 VGG网络…...

解决:vue通过params传参刷新页面参数丢失问题以及实现vue路由可选参数的解决办法

目录 🙋‍♂️ 实现params传参,刷新页面不丢参 🙋‍♂️ 实现vue配置可选路由参数 🙋‍♂️ 参考资料 解决vue 通过 name 和 params 进行页面传参时,刷新页面参数丢失问题以及vue路由实现可选参数 🙋‍♂…...

将postman接口导出的json转换为markdown

您可以使用 Postman 官方提供的工具或第三方工具将 Collection 文件转换为 Markdown 文件。 方式一 Postman 官方提供的工具是 Newman,它是一个命令行工具,可以帮助您运行和测试 Postman Collection,还可以将 Collection 转换为多种格式&am…...

教您一招解决找素材困难好的方法

创作视频内容时,找到合适的素材是至关重要的。然而,有时候寻找视频素材可能会变得困难。本文将分享一些实用的方法,帮助您轻松解决找视频素材困难的问题。 素材库和在线平台是寻找视频素材的首选方法。 利用专业的视频剪辑工具 在电脑上安…...

python_PyQt5开发验证K线视觉想法工具V1.2_批量验证

目录 运行情况: ​编辑 结果json文件格式: 代码: 承接 【python_PyQt5开发验证K线视觉想法工具V1.1 _增加标记类型_线段】 博文 地址:python_PyQt5开发验证K线视觉想法工具V1.1 _增加标记类型_线段_程序猿与金融与科技的博客-…...

应急响应-web后门(中间件)的排查思路

0x01 获取当前网络架构 语言,数据库,中间件,系统环境等 0x02 分析思路 1.利用时间节点筛选日志行为 2.利用已知的漏洞在日志进行特征搜索,快速定位到目标ip等信息 3.后门查杀,获取后门信息,进一步定位目…...

XML 学习笔记 7:XSD

本文章内容参考自: W3school XSD 教程 Extensible Markup Language (XML) 1.0 (Second Edition) XML Schema 2001 XML Schema Part 2: Datatypes Second Edition 文章目录 1、XSD 是什么2、XSD 内置数据类型 - built-in datatypes2.1、基本数据类型 19 种2.1.1、基本…...

neo4j图数据库基础操作命令(CQL语法)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

vscode无法连接远程服务器的可能原因:远程服务器磁盘爆了

vscode输入密码后一直等待,无法进入远程服务器终端: 同时Remote-SSH输出包含以下内容 在日志中的以下几个部分: [17:15:05.529] > wget download failed 这表明VS Code尝试在远程服务器上下载VS Code服务器时失败了。> Cannot write…...

SSL 证书过期巡检脚本 (Python 版)

哈喽大家好,我是咸鱼 之前写了个 shell 版本的 SSL 证书过期巡检脚本 (文章:《SSL 证书过期巡检脚本》),后台反响还是很不错的 那么今天咸鱼给大家介绍一下 python 版本的 SSL 证书过期巡检脚本 (完整代码…...

StructBERT情感分类模型在教育领域的情绪分析应用

StructBERT情感分类模型在教育领域的情绪分析应用 教育工作者如何从海量学生反馈中快速识别情绪变化?AI情感分析技术正在重新定义教学体验优化方式 1. 教育场景中的情感分析需求 在日常教学过程中,学生通过各种渠道表达他们的感受和体验:课程…...

Legacy iOS Kit终极指南:让旧款iOS设备重获新生的完整解决方案

Legacy iOS Kit终极指南:让旧款iOS设备重获新生的完整解决方案 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-K…...

好写作AI|避免“AI味”过重:硕士初稿中的人机协同写作技巧

家人们,谁懂啊? 你兴冲冲地把用AI写的初稿交给导师,结果导师只看了一页,就皱起眉头: “这段是你自己写的还是AI写的?” 你心里咯噔一下,强装镇定:“我自己写的啊……” 导师&#xf…...

Steane编码实战指南:用Python模拟[7,1,3]量子纠错电路(附完整代码)

Steane编码实战指南:用Python模拟[7,1,3]量子纠错电路(附完整代码) 量子计算正从实验室走向现实应用,但量子比特的脆弱性始终是横亘在实用化道路上的关键障碍。想象一下,当你精心设计的量子算法因为一个随机的相位翻转…...

4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南

4个维度解析YetAnotherKeyDisplayer:开源实时按键可视化工具全指南 【免费下载链接】YetAnotherKeyDisplayer The application for displaying pressed keys of the keyboard 项目地址: https://gitcode.com/gh_mirrors/ye/YetAnotherKeyDisplayer YetAnothe…...

macOS安装OpenClaw全流程:Qwen2.5-VL-7B图文模型调试技巧

macOS安装OpenClaw全流程:Qwen2.5-VL-7B图文模型调试技巧 1. 为什么选择OpenClawQwen2.5-VL组合 去年冬天第一次接触OpenClaw时,我正被重复性的截图标注工作折磨得焦头烂额。当时尝试过几个自动化工具,要么功能太局限,要么需要把…...

OpenClaw+Qwen3-14b_int4_awq:3种降低token消耗的实战技巧

OpenClawQwen3-14b_int4_awq:3种降低token消耗的实战技巧 1. 为什么我们需要关注token消耗 第一次看到OpenClaw的token账单时,我差点从椅子上跳起来。一个简单的文件整理任务竟然消耗了接近5000个token,这还只是测试环境下的单次运行。当我…...

Java集合判空全攻略:从原生方法到Apache Commons工具类对比

Java集合判空全攻略:从原生方法到Apache Commons工具类对比 在Java开发中,集合判空是最基础却又最容易出错的环节之一。一个看似简单的判空操作,背后可能隐藏着NPE风险、性能损耗甚至逻辑漏洞。本文将深入剖析Java原生判空方法与Apache Commo…...

AI-AGENT概念解析 - LLM部署文件

**问题:那一个下载到本地的大模型中,包括哪些文件,各有什么功能和作用,不同的大模型,包括的文件应该是不一样的。 大家会很自然地问到:下载到本地的大模型文件夹里到底有哪些文件?不同模型的文件…...

STM32危化品管理系统设计与实现

1. 项目背景与需求分析实验室危化品管理一直是科研机构面临的重要挑战。传统的人工记录方式存在效率低下、容易出错、无法实时监控等问题,尤其对于易燃、易爆或有毒化学品的管理更是隐患重重。我曾参与过多个高校实验室的安全改造项目,亲眼见过因管理不善…...