草庐IT

USB -- STM32-FS-USB-Device驱动代码简述(二)

目录链接快速定位 前沿1STM32-FS-USB驱动程序下载2 STM32-USB-FS设备固件库2.1USB应用程序层次结构2.2 USB-FS_Deviceperipheralinterface2.3 USB-FS-Device_Drivermediumlayer2.3 Applicationinterface3代码讲解3.1初始化代码讲解3.2描述符讲解3.3中断处理函数3.3.1复位函数3.3.2正确传输完成函数3.3.2.1枚举过程正确传输完成函数3.3.2.2非端点0正确传输完成函数链接快速定位 USB--初识USB协议(一)STM32F10x,STM32L1xxandSTM32F

C语言第十八弹---指针(二)

✨个人主页: 熬夜学编程的小林💗系列专栏: 【C语言详解】 【数据结构详解】指针1、const修饰指针1.1、const修饰变量1.2、const修饰指针变量2、指针运算2.1、指针+-整数2.2、指针-指针2.3、指针的关系运算3、野指针3.1、野指针成因3.2、如何规避野指针3.2.1、指针初始化3.2.2、小心指针越界3.2.3、指针变量不再使用时,及时置NULL,指针使用之前检查有效性3.2.4、避免返回局部变量的地址4、assert断言5、指针的使用和传址调用5.1、strlen的模拟实现5.2、传值调用和传址调用总结1、const修饰指针1.1、const修饰变量变量是可以修改的,

RabbitMQ(二)

        老样子,咱八股文说完了,上点干货,来点实际的操作(不懂的先去把上章(RabbitMQ(一)啃了)    我目前在做的项目是用springboot自带的amqp创建的RabbitMQ坐标(如果不需要的可以去查一查RabbitMQ自身坐标进行引入):    创建步骤(newproject选择springInitializr=>它能帮我们快速创建springboot项目)                创建的时候选好自己要的版本(我这里选的是JDK17,用的是IDEA2023.3.1版本,为了赶紧给大家制作出来,就没有去换低版本使用JDK8了,2023.3.1还没找到在哪配8的版本)

用于符号数学的 Python 库——sympy(二):常用信号的Laplace变换

关于拉普拉斯变换的作用,可参考知乎总的来说,拉普拉斯变换就是迫使函数满足绝对可积条件的傅里叶变换。常用信号的Laplace变换参考信号与系统/陈后金,胡健,薛健.——2版.——北京:清华大学出版社;北京交通大学出版社,2005.7(2017.3重印)第218-219页。序号    单边信号(f(t))    Laplace变换(F(s)F(s)F(s))    收敛域    1e−λtu(t)e^{-\lambdat}u(t)e−λtu(t)1s+λ\frac{1}{s+\lambda}s+λ1​Re(s)>−λRe(s)>-\lambdaRe(s)>−λ2ejω0tu(t)e^{j\omeg

第三章 搜索与图论(二)(最短路)

一、最短路问题1、对于稠密图,由于朴素版的dijkstra算法与边数无关使用这种算法的复杂度较低。稀疏图用堆优化版的算法;单源最短路中存在负权边用SPFA算法通常较好;多源用floyd算法; 难点:如何建图,抽象为最短路问题。二、朴素版dijkstra算法由于稠密图用这种算法,邻接矩阵存图,注意把g初始化为0x3f;st保存每个数组的状态,#include//849dijkstra最短路usingnamespacestd;constintN=510;intg[N][N],disk[N],st[N];intn,m;intdijkstra(){disk[1]=0;for(inti=1;idisk[

动态规划02-斐波那契类型二

斐波那契类型二1.使用最小花费爬楼梯2.打家劫舍3.删除并获得点数1.使用最小花费爬楼梯给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。真题点击此处:746.使用最小花费爬楼梯解题方法:动态规划思路:对于此题来说,假设cost的长度为n,那么我们可以令前n个楼梯的下标为0–n-1,因此这个问题本质上就是算出当下标为n时的费用即可。我们假设爬到当前下标i的耗费为dp[i](不包括当前i位置的消费),由题意可知,每次可以爬一个或

数据结构(二)------单链表

制作不易,三连支持一下呗!!!文章目录前言一.什么是链表二.链表的分类三.单链表的实现总结前言上一节,我们介绍了顺序表的实现与一些经典算法。但是顺序表这个数据结构依然有不少缺陷:1.顺序表指定位置和头部的插入和删除操作的时间复杂度为o(n)。2.增容需要重新申请新的空间,拷贝旧数据,释放旧空间有不小的损耗。3.增容是成倍数的扩容,难免还会存在一定的空间浪费。问题来了:有没有一种数据结构是可以弥补上述顺序表中存在的一些缺点的。答案是肯定的——链表一.什么是链表链表的结构就像火车的一节一节的车厢,每节车厢单独用来容纳乘客,但是彼此之间又用链条相互勾连在一起。同时从第一节车厢想要到达第三节车厢必须要

AIGC内容分享(五十二):AIGC视觉艺术创新工具之:Bing图像生成器(Bing Image Creator)

“视觉艺术工具”是指能够协助艺术家或设计师创作视觉艺术作品的一类工具。通常,这类工具的学习和使用门槛较高,往往只有专业人士能够运用。通过AIGC生成全新的艺术品,这种创新的创作方式显著降低了艺术创作的门槛,使其变得更加平易近人、易于使用。这使得更多非专业人士能够涉足艺术创作,将艺术创作的边界变得平民化和全民化。目录Bing图像生成器简介Bing图像生成器的模型Bing图像生成器工作原理如何使用Bing图像创建器?如何描述你心中的画作提示词及作品示例结语Bing图像生成器简介Bing图像生成器(BingImageCreator)是Microsoft推出的一款AI图像生成器,它可以根据用户的文字描

视频二创的高阶玩法:一键AI更改视频口播文案和配音,真正实现视频去重

1.视频二创的背景和意义项目背景对于抖音、快手、TikTok等算法推荐的平台来说,高创新度的素材具有极高的价值,能够显著的提高用户在平台的活跃,而创作者也会从平台给予的流量获得激励,进一步提高创作者的创作激情。而视频混剪、视频二创和视频去重生产可以降低视频制作门槛,使更多的用户参与到视频创作和分享中来。平台可以吸引更多的用户加入,扩大用户群体和市场份额,增加平台的活跃度和影响力,进而带来更多的商业价值和合作机会。但视频混剪、视频二创等批量生产问题,也可能会给平台带来大量的低质、重复类型的素材,破坏用户体验,降低优秀创作者的激情,因此如何识别优秀的二创,在平台的角度是需要平衡并且需要仔细识别的。

Electron实战(二):将Node.js和UI能力(app/BrowserWindow/dialog)等注入html

文章目录设置webPreferences参数安装`@electron/remote`main进程中初始化html中使用dialog踩坑参考文档上一篇:Electron实战(一):环境搭建/HelloWorld/打包exe设置webPreferences参数为了能够在html/js中访问Node.js提供fs等模块,需要在newBrowserWindow(config)的时候,设置一些参数://LuckyTools/index.jsconstmainWindow=newBrowserWindow({icon:iconPath,width:800,height:600,webPreferences