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

【STM32】在 STM32 USB 设备库添加新的设备类

说实话,我非常想吐槽 STM32 的 USB device library,总感觉很混乱。

USB Device library architecture

根据架构图:

在这里插入图片描述

Adding a custom class

如果你想添加新的设备类,必须修改的文件有

  • usbd_desc.c
  • usbd_conf.c
  • usb_device.c

需要添加的文件

  • usbd_xxx.c: xxx 为设备名,例如 usbd_cdc,communication device class
  • usbd_xxx_if.c: if 代表 interface,即图中的 interface class.c,是暴露给应用来调用的,比如 CDC_Transmit()

相关文章:

【STM32】在 STM32 USB 设备库添加新的设备类

说实话,我非常想吐槽 STM32 的 USB device library,总感觉很混乱。 USB Device library architecture 根据架构图: Adding a custom class 如果你想添加新的设备类,必须修改的文件有 usbd_desc.cusbd_conf.cusb_device.c 需要…...

【Redis】Redis实现的消息队列

一、用list实现【这是数据类型所以支持持久化】 消息基于redis存储不会因为受jvm内存上限的限制,支持消息的有序性,基于redis的持久化机制,只支持单一消费者订阅,无法避免消息丢失。 二、用PubSub【这不是数据类型,是…...

# Spring事务

Spring事务 什么是spring的事务? 在Spring框架中,事务管理是一种控制数据库操作执行边界的技术,确保一系列操作要么全部成功,要么全部失败,从而维护数据的一致性和完整性。Spring的事务管理主要关注以下几点&#xf…...

Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找

一,数组翻转 1.概述:数组对称索引位置上的元素互换,最大值数组序号是数组长度减一 创建跳板temp,进行min和max的互换,然后min自增,max自减,当min>max的时候停止互换,代表到中间值 用代码实…...

ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)

文章目录 1、ARM 架构ARM 架构的特点ARM 架构的应用ARM 架构的未来发展 2、RISCRISC 的基本概念RISC 的优势RISC 的应用RISC 与 CISC 的对比总结 1、ARM 架构 ARM 架构是一种低功耗、高性能的处理器架构,广泛应用于移动设备、嵌入式系统以及越来越多的服务器和桌面…...

7.STM32之通信接口《精讲》之USART通信---多字节数据收发(数据包的模式:HEX数据包和文本数据包)

根据上一节的HEX数据包的设计完成,本节将完成文本数据包的编写,(HEX数据包其实本质就是原始数据,文本数据包我么要接收到还要对照ASCll进行解析封装) 有不懂的可参考上一节的讲解!!&#xff…...

基于Vue+SpringBoot的求职招聘平台

平台概述 本平台是一个高效、便捷的人才与职位匹配系统,旨在为求职者与招聘者提供一站式服务。平台内设三大核心角色:求职者、招聘者以及超级管理员,每个角色拥有独特的功能模块,确保用户能够轻松完成从信息获取到最终录用的整个…...

WebRTC 和 WebSocket

WebRTC 和 WebSocket 是两种不同的技术,虽然它们都用于在浏览器之间进行通信,但它们的设计目标和使用场景有所不同。以下是它们之间的主要区别: 目的和使用场景 WebRTC: 主要用于实现实时音视频通信。 支持点对点(P2P&#xff09…...

小车综合玩法--5.画地为牢

一、实验准备 前面我们利用四路巡线模块巡线,现在我们利用这个特性,用黑线将小车围起来,让小车一直在我们围的圈内运动。 1.小车接线已安装,且安装正确 2.调试四路巡线模块遇黑线时指示灯亮。不是黑线时指示灯灭。 二、实验原理…...

数据库课程设计全流程:方法与实例解析

--- ### 一、数据库课程设计概述 数据库课程设计是学习数据库理论知识的重要实践环节,旨在帮助学生掌握数据库设计和应用系统开发的完整流程,包括需求分析、数据库设计、功能实现以及性能优化。 #### **设计目标** 1. 掌握数据库设计的基本步骤和原则…...

用Ruby编写一个自动化测试脚本,验证网站登录功能的正确性。

测试准备:从江河湖海到代码世界的奇妙之旅 亲爱的朋友们,你们好!今天我要带你们进入一个神奇的世界——测试的世界。在这里,我们将会看到各种各样的测试用例,它们就像江河湖海一样,汇聚在一起,…...

跳表 | 基本概念 | 代码实现

文章目录 1.跳表的基本概念2.跳表的结构3.跳表的增删改查4.完整代码 1.跳表的基本概念 跳表的本质是一种查找结构,一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表,跳表比较的特殊,它独成一派…...

分数加减

#include <stdio.h> #include <stdlib.h>// 求最大公因数 int gcd(int a, int b) {return b 0? a : gcd(b, a % b); }// 化简分数 void simplify(int *num, int *den) {int g gcd(*num, *den);*num / g;*den / g;if (*den < 0) {*num * -1;*den * -1;} }//…...

基于卷积神经网络的皮肤病识别系统(pytorch框架,python源码,GUI界面,前端界面)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示&#xff1a; 皮肤病识别系统 vgg16 resnet50 卷积神经网络 GUI界面 前端界面&#xff08;pytorch框架 python源码&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的皮肤病识…...

QT与嵌入式——获取网络实时时间

目录 1、使用QT通过网络API接口获取网络实时时间 1.1、首先在网上找一个获取实时时间的API接口 1.2、 根据第一步获取的链接来发送请求 1.3、通过connect链接信号与槽 注意的点&#xff1a; 2、为什么需要网络实时时间 3、获取本机的实时时间 4、顺带提一句 1、使用QT通过…...

优化装配,提升品质:虚拟装配在汽车制造中的关键作用

汽车是各种零部件的有机结合体&#xff0c;因此汽车的装配工艺水平和装配质量直接影响着汽车的质量与性能。在汽车装配过程中&#xff0c;经常会发生零部件间干涉或装配顺序不合理等现象&#xff0c;且许多零部件制造阶段产生的质量隐患要等到实际装配阶段才能显现出来&#xf…...

Bug的严重等级和优先级别与分类

目录 前言 1. Bug的严重等级定义 2.Bug的优先等级 3.一般 BUG 的正规的处理流程 4.BUG严重等级划分 5.BUG紧急程度定义 前言 Bug是指在软件开发或者系统运行过程中出现的错误、缺陷或者异常情况。它可能导致系统无法正常工作、功能不完整、数据错误或者界面异常等问题。 …...

游戏引擎学习第13天

视频参考:https://www.bilibili.com/video/BV1QQUaYMEEz/ 改代码的地方尽量一张图说清楚吧,懒得浪费时间 game.h #pragma once #include <cmath> #include <cstdint> #include <malloc.h>#define internal static // 用于定义内翻译单元内部函数 #…...

bind返回失败(ctrl+c)结束后不能再次加载

问题现象&#xff08;VxWorks&#xff09;&#xff1a; 在测试的时候发现使用ctrlc打断程序后再次调用bind绑定失败 错误返回 0x30 问题分析&#xff1a; 1、程序没有开启端口复用。 2、程序在使用ctrlc打断后 vxWorks的打断和linux不相同&#xff0c;并没有清除底层的端口&a…...

菜鸟驿站二维码/一维码 取件识别功能

特别注意需要引入 库文 ZXing 可跳转&#xff1a; 记录【WinForm】C#学习使用ZXing.Net生成条码过程_c# zxing-CSDN博客 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Net.…...

C语言弱符号与弱引用技术解析

跨平台C语言开发中的弱符号与弱引用技术解析1. 弱符号技术原理与应用1.1 弱符号定义与语法弱符号是指在定义或声明变量、结构体成员或函数时&#xff0c;通过添加__attribute__((weak))属性标记的对象符号。在C语言中&#xff0c;弱符号的典型定义方式如下&#xff1a;__attrib…...

【Java】Java核心关键字:final、static、volatile、synchronized、transient(附《面试高频考点》)

文章目录Java 5大核心关键字5大关键字——对比表1. final 关键字定义作用使用场景实现原理注意事项2. static 关键字定义作用使用场景实现原理注意事项3. volatile 关键字定义作用使用场景实现原理注意事项4. synchronized 关键字定义作用使用场景实现原理注意事项5. transient…...

PyTorch 2.8镜像惊艳效果:Wan2.2-T2V在RTX 4090D上生成1080p视频实录

PyTorch 2.8镜像惊艳效果&#xff1a;Wan2.2-T2V在RTX 4090D上生成1080p视频实录 1. 开篇&#xff1a;专业级视频生成环境 当我们需要处理视频生成这类计算密集型任务时&#xff0c;一个稳定高效的运行环境至关重要。今天要介绍的PyTorch 2.8深度优化镜像&#xff0c;正是为R…...

锅炉水温串级调节系统西门子S7-200 PLC和用组态王6.55联机和仿真程序全套包

锅炉水温串级调节系统西门子S7-200 PLC和用组态王6.55联机和仿真程序全套包&#xff0c;带IO表接线图CAD锅炉水温控制这活儿看起来简单&#xff0c;实操起来全是坑。今天咱们用西门子S7-200 PLC配组态王6.55&#xff0c;搞个带仿真验证的串级调节系统。先说重点&#xff1a;主回…...

从LeGO-LOAM到LIO-SAM:手把手教你为速腾聚创雷达添加IMU和GPS因子图优化

从LeGO-LOAM到LIO-SAM&#xff1a;多传感器融合SLAM的工程实践与深度解析 当你在户外空旷场地测试LeGO-LOAM时&#xff0c;是否遇到过点云特征不足导致的轨迹漂移&#xff1f;当机器人长时间运行后&#xff0c;是否发现建图结果出现明显的累积误差&#xff1f;这些问题正是LIO-…...

风力发电变桨系统避坑指南:从编码器选型到限位开关安装的5个关键细节

风力发电变桨系统避坑指南&#xff1a;从编码器选型到限位开关安装的5个关键细节 在风电行业摸爬滚打多年的工程师们都清楚&#xff0c;变桨系统就像风力发电机组的"神经系统"&#xff0c;任何一个环节的微小失误都可能导致整个系统瘫痪。不同于实验室环境&#xff0…...

东方美学AI绘画神器:Asian Beauty Z-Image Turbo快速入门与参数设置详解

东方美学AI绘画神器&#xff1a;Asian Beauty Z-Image Turbo快速入门与参数设置详解 1. 工具概览与核心优势 Asian Beauty Z-Image Turbo是一款专为东方美学人像生成优化的本地AI绘画工具。它基于通义千问Tongyi-MAI Z-Image底座模型&#xff0c;通过注入Asian-beauty专用权重…...

从CenterNet到YOLC:手把手教你改进小目标检测头(含可变形卷积实现)

从CenterNet到YOLC&#xff1a;手把手教你改进小目标检测头&#xff08;含可变形卷积实现&#xff09; 1. 航拍图像小目标检测的挑战与突破 航拍图像中的小目标检测一直是计算机视觉领域的难点问题。与常规图像相比&#xff0c;航拍图像通常具有以下三个显著特点&#xff1a; 超…...

RexUniNLU中文理解能力评测:多项任务性能对比

RexUniNLU中文理解能力评测&#xff1a;多项任务性能对比 在自然语言处理领域&#xff0c;中文理解一直是个充满挑战的任务。不同于英文的空格分隔&#xff0c;中文的词语边界模糊、语义丰富&#xff0c;让很多模型在处理时感到棘手。今天我们要评测的RexUniNLU&#xff0c;正…...

H3C路由器EBGP/IBGP邻居配置全指南:从基础搭建到next-hop-local参数精讲

H3C路由器EBGP/IBGP邻居配置实战&#xff1a;跨AS互联的深度解析 在企业级网络架构中&#xff0c;BGP协议作为互联网路由的事实标准&#xff0c;其配置的精细程度直接决定了多自治系统&#xff08;AS&#xff09;间互联的可靠性与效率。H3C作为国内主流网络设备厂商&#xff0c…...