使用cubeMX生成USB HID设备

news2024/12/28 19:00:10

一,简介

本文主要介绍如何使用stm32F407开发板和cubeMX生成USB FS HID设备,供参考。

二,操作步骤

本次总共分以下几个步骤:
1,创建cubeMX工程,并配置HID,生成工程代码;
2,编译工程,下载到板子;
3,上电查看USB HID设备是否枚举成功;

2.1 创建cubeMX工程,并配置HID,生成工程代码

1,打开cube MX查找stm32F407ZGT6芯片:
在这里插入图片描述
2,配置RCC寄存器,这里使用外部时钟
在这里插入图片描述
3,配置debug串口功能,作为调试。
在这里插入图片描述
4,USB FS配置为device_only:
在这里插入图片描述
5,配置USB Device,这里PID和VID使用十六进制显示分别为:0x5750和0x0483(后续查看设备时根据PID和VID进行查找设备)
在这里插入图片描述
6,配置系统时钟,根据板子的原理图,调整USB外设的时钟(USB外设时钟要配置为48MHz)
我的开发板是使用8MHz的外部晶振,USB时钟使用AHB总线,故本次时钟配置如下:
在这里插入图片描述
7,工程配置
配置project,选择自己的keil版本,本次使用keil为MDK-ARM,v5.27版本。
在这里插入图片描述
生成代码配置:
在这里插入图片描述
8,生成代码,打开工程
在这里插入图片描述
至此,工程代码生成完成:
打开工程如下图所示:
在这里插入图片描述

2.2,编译工程,下载到板子;

在这里插入图片描述本次使用Stlink下载到板子。

2.3,上电查看USB HID设备

下载完成之后,重新上电,打开BUShound工具能找到对应PID和VID的设备,就代表HID设备枚举成功:
在这里插入图片描述
至此,HID设备基本配置完成。

三,总结

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/549568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光伏防逆流系统的介绍

安科瑞虞佳豪 5月17日,新疆和田地区洛浦县国家电投洛浦光伏电站,今年2月刚刚并网发电的200兆瓦光伏发电项目坐落于戈壁滩上,占地5500亩的368004块光伏面板在阳光照射下熠熠生辉,为和田地区经济社会发展持续提供着绿色能源。 洛浦…

HNU-操作系统OS-实验Lab6

OS_Lab6_Experimental report 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 实验目的 理解操作系统的调度管理机制熟悉 ucore 的系统调度器框架,以及缺省的Round-Robin 调度算法基于调度器框架实现一个(Stride Scheduling)调度算法来替换缺省的调度算…

第12章_MySQL数据类型精讲

第12章_MySQL数据类型精讲 1. MySQL中的数据类型 类型类型举例整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT浮点类型FLOAT、DOUBLE定点数类型DECIMAL位类型BIT日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP文本字符串类型CHAR、VARCHAR、TINYTEXT、TE…

chatgpt赋能Python-pythondeque函数

Python deque函数:高效地操作双向队列 介绍 在Python中,deque函数是一个非常重要的内置函数,用于创建双向队列。双向队列是一个序列容器,可以从两端添加或删除元素,这使得它成为许多常见问题的解决方案。deque函数是…

Vue--》深入理解 Vue 3 导航守卫,掌握前端路由的灵魂技能!

目录 vue3导航守卫讲解与使用 element-ui的安装与使用 配置路由和设置路径别名 设置登录页面并实现规则跳转 设置导航前置守卫 设置导航后置守卫 其他路由相关操作 vue3导航守卫讲解与使用 导航守卫是在 Vue Router 中提供的一种功能,它允许你在切换路由之前…

chatgpt赋能Python-pythonfirst

PythonFirst:Python编程新手的最佳起点 作为一门简洁而又强大的编程语言,Python在过去的几年中得到了越来越多的关注和应用。它广泛应用于数据分析、人工智能、Web开发、自动化等领域,成为了许多程序员的首选语言。如果你也是刚刚开始接触Py…

有哪些简单而知道的人少的excel操作技巧?

以下是 Excel 里鲜为人知而又简单、逆天的操作技巧: 1. 快速选中数据区域:双击数据区域左上角的方格即可快速选中整个数据区域。 2. 使用自动筛选快速查找和筛选数据:在 Excel 数据表中,使用自动筛选可以快速找到和筛选特定数据…

【Robot Dynamics Lecture Notes学习笔记之浮动基动力学】

Robot Dynamics Lecture Notes学习笔记之浮动基动力学 Contact ForcesSoft Contact Model Contact Forces from Constraints Constraint Consistent DynamicsContact Switches and Impact CollisionsImpulse TransferEnergy Loss 浮动基座系统的广义坐标分别由驱动关节坐标 q j…

小程序-基础加强(二):使用npm包

使用npm包 1.小程序对npm的支持与限制 目前,小程序中已经支持使用npm安装第三方包,从而来提高小程序的开发效率。但是,在小程序中使用npm包有如下3个限制: ①不支持依赖于Node.js内置库的包 ②不支持依赖于浏览器内置对象的包 …

Springboot +spring security,登录表单进阶配置及原理分析

一.简介 登录表单配置实操 二.创建项目 如何创建一个SpringSecurity项目,前面文章已经有说明了,这里就不重复写了。 三.配置默认用户信息 配置文件添加如下用户信息,代码如下: spring:security:user:name: lglbcpassword: 1…

HNU数据结构与算法分析-作业7-算法设计技术

1. (简答题, 10分)请简述分治法所能解决的问题一般具有哪些特征? 2. (简答题, 10分)请简述动态规划法的四个求解步骤。 3. (简答题, 10分)请比较动态规划法和贪心法,并写出两者的区别。 4. (简答题, 10分)请写出分支限界法和回溯法的区别。 二. 算法设计…

chatgpt赋能Python-pythonendswith

Python endswith方法:介绍、用法和示例 在编程中,经常需要查找字符串是否以特定字符结尾。Python提供了一个方便易用的方法——endswith()。 什么是Python endswith()方法? Python endswith()方法是用于检查字符串是否以特定子字符串结尾的…

第六章总结-莫凡商城的注册、登录功能

1.微信小程序表单组件 1.1button按钮组件 type的属性值有三种 primary 绿色default 白色warn 红色 除了这种方式可以设置按钮大小,还有其他的通过视图来控制按钮的方式,因为我们知道,微信小程序的按钮并不都是这三种颜色。其他方式比如把按…

Web APIs之DOM

一.Web API基本认知 二.获取DOM对象 三.操作元素内容 四. 操作元素属性 五.定时器-间歇函数 一、Web API基本认知 *作用和分类 *什么是DOM *DOM树 *DOM对象 1.作用和分类 (1)作用:使用JS去操作html和浏览器 (2&#xff09…

service mesh学习

背景 单体服务的痛点导致单体服务被拆分为多个微服 每个微服必须要解决负载均衡、服务发现、熔断等功能 为了让上层开发更加快速和无需关注通用能力,在网络栈和应用业务层之间抽出一个透明网络代理层。 Service Mesh 轻量级网络代理,负责微服之间的通…

H5 实现蜂巢(六边形)导航,支持用户交互和动态添加,纯css实现无需布局计算

最近公司的项目出了版新的UI设计图,所以准备进行样式改版 而其中就有个导航要改成蜂巢(六边形)导航,当我看到时其实也挺迷糊的。 说一下我一开始的想法哈: 我一开始是打算使用背景颜色线性渐变 或者 用4个子元素覆盖4角 来实现 六边形的视觉…

二、数据字典开发

文章目录 二、数据字典开发1、搭建service-cmn模块1.1 搭建service-cmn模块1.2 修改配置1.3 启动类 2、数据字典列表2.1 数据字典列表接口2.1.1 model模块添加数据字典实体2.1.2 添加数据字典mapper2.1.4 添加数据字典controller 2.2 数据字典列表前端2.2.1 添加路由2.2.2 定义…

centos 8 安装nacos2.0.3

去官网下载软件包 下载地址:https://github.com/alibaba/nacos/releases 上传到服务器指定位置,并解压 修改nacos存储为数据库 vi /xxx/nacos/conf/application.properties ## 在最后添加以下内容 spring.datasource.platformmysql db.num1 db.url.0j…

chatgpt赋能Python-pythonend

Pythonend – 一站式 Python SEO 工具 Pythonend 是一款基于 Python 的 SEO 工具,它为企业和个人提供了一站式的 SEO 解决方案。无论您是想要提高网站排名、监测关键词排名、分析竞争对手或进行网站优化,Pythonend 都可以帮助您解决这些问题。 Pythone…