- 博客(119)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 【05】深度学习——最优化与深度学习关系 | 损失函数、性质 | 梯度下降 | 随机、小批量梯度下降 | 动量法 | AdaGrad | RMSProp/AdaDelta |Adam | 学习率调节器
梯度下降法的目标是为了求解损失函数JJJ,有三要素,1是起始点;2是梯度,找到方向,一只减小;3是学习率。wt1wt−α∇Jwt1wt−α∇J本节介绍了RMSProp/AdamDelta两种二阶动量优化方法,几乎同一时期提出的梯度下降算法的变体,动态调整学习率。基本思路:时序累加修改二阶动量,动态调整学习率。定义一个简单的模型,维度为8的一层全连接网络,激活函数为ReLU函数。# 定义一个简单的模型。
2024-09-12 10:41:09
172
原创 关于Anacond“Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.”解决方法
出现报错“Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.”或者在Jupyte中调用。如果是在虚拟环境DeepLearning中,就删除…\Anaconda\envs\DeepLearning\Library\bin目录下的"libiomp5md.dll"文件。如果是在base环境下就删除…\Anaconda\Library\bin目录下的的"libiomp5md.dll"文件。
2024-09-12 10:40:44
1054
原创 【04】深度学习——训练的常见问题 | 过拟合欠拟合应对策略 | 过拟合欠拟合示例 | 正则化 | Dropout方法 | Dropout的代码实现 | 梯度消失和爆炸 | 模型文件的读写
定义三种不同的模型,分别对应过拟合、正常和欠拟合。欠拟合使用一个线性回归模型,输入维度为1,输出维度为1,线性回归模型没有隐藏层,也没有激活函数,所以它肯定无法很好地拟合抛物线数据;正常情况下使用包含8个神经元的隐藏层,输入输出维度仍都是1;过拟合用一个比正常情况更加复杂的多层感知机,神经元每一层有256个,隐藏层的激活函数都是用的ReLU函数。# 定义线性回归模型(欠拟合)# 定义损失函数# 定义训练和测试误差数组# 遍历每类模型# 定义优化器# 每类模型的训练和测试误差# 迭代训练。
2024-09-11 12:02:31
576
原创 关于jupyter调用matplotlib.sactter等函数就出现”The kernel for xxx.ipynb appears to have died. “的解决方法
jupyter在调用matplotlib.scatter时出现"The kernel for xxx.ipynb appears to have died. It will restart automatically."提示,并停止运行。
2024-09-11 12:01:55
805
2
原创 【03】深度学习——神经网络原理 | 多层感知机 | 前向传播和反向传播 | 多层感知机代码实现 | 回归问题、分类问题 | 多分类问题代码实现
神经网络是一种数学模型,下图是一个最简单的神经元,通常用带有输入输出的圆圈来表示,虽然其名为神经元,但是其内在是线性模型。 神经元模型用数学公式表示为y=f(∑i=1nwixi+b)y=f(\sum_{i=1}^{n}w_ix_i+b)y=f(∑i=1nwixi+b),其中wixi+bw_ix_i+bwixi+b是直线方程,www为斜率,也被称为神经元连线上的权重,整个式子描述的是从输入的x1x_1x1至xnx_nxn到输出yyy之间的映射关系。其中bbb截距,是bias的首字母;n
2024-09-10 18:46:42
446
原创 【02】深度学习——安装CUDA和Anaconda | coda常用命令 | Jupyter快速上手 | 安装Pytorch | Pytroch、CUDA、NVIDIA之间的关系
CUDA全称:Compute Unified Device Architecture。显卡支持:通常是英伟达的Geforce或Quadro系列显卡。注意:根据电脑显卡驱动的版本,安装对应支持的CUDA版本。一个用于科学计算、数据分析和机器学习的Python发行版。包含了常用的科学计算、数据分析和机器学习库。通过一个简单的包管理器(conda)安装和管理。
2024-01-30 23:05:17
2600
1
原创 【01】深度学习——数学基础 | 线性代数 | 微积分 |概率
内积还可以表示两个向量的线性相关程度,比如将两个向量规范化得到单位向量,二者的内积就是夹角值的余弦,越接近于1则二者更相关,等于0则二者正交(垂直),二者线性无关。Maximum Likelihood Estimation,MLE:利用已知的样本结果,反推最优可能导致这样结果的参数,即找到参数的最大概率取值。概率是个人的主观概念,表面我们对事务的相信程度,通过观测得到的数据对结果进行更新,从而得到更为准确的估计。单位向量:是模长固定为1的向量,它通常用来表示的是向量在空间中的方向,而不是大小。
2024-01-25 22:46:15
651
2
原创 在Ubuntu20.04配置PX4环境
pwd=5npl 提取码:5npl。找到“软件和更新”,选择aliyun服务器,——>【关闭】——>【重新载入】,等待进度条完毕就更管成功。出现“Configuring incomplete, errors occurred!",这是由于没有将软件源改为国内软件源,如果意外退出下载,第二次进入下载的时候缓存会被锁住。在主目录下打开终端,运行以下命令,
2023-12-27 21:50:23
2193
原创 什么GAN生成对抗网络?生成对抗网络可以干什么?
新手画家用随机灵感画画,新手鉴赏家接收到一些画作,但是不知道是新手画的还是著名画家画的,他说出了自己的判断,你来纠正他的判断,新手鉴赏家一边学习如何判断,一边告诉新手画家如何作画才能更像著名画家,新手画家就能学习到如何从自己的灵感中画出更好的著名画作了,GAN也就那么一回事。新手鉴赏家和新手画家是好朋友,彼此之间总爱分享学到的东西,所以新手鉴赏家告诉新手画家哪里做的不好,学习一下别人达芬奇,新手鉴赏家从你这里学到的知识,都教给了新手画家, 让好朋友新手画家也越来越厉害。
2023-11-07 22:32:00
775
原创 【01】LVGL-CodeBlock模拟器安装 | LVGL工程下载 | PC端模拟LVGL步骤
LVGL模拟器:使用PC端软件模拟LVGL运行,而不需要任何嵌入式硬件。优点:便于学习、跨平台协同开发。
2023-10-19 22:52:24
2256
原创 【LVGL】SquareLine Studio入门基础操作
在本小节中将介绍SquareLine Studio中支持任意自定义开发板,我们称之为Open Board Platform(OBP),简单来说,这意味着您可以创建一个模板项目和一个相邻的scripture文件,将他们复制到SquareLine Studio的文件夹中,该开发板将出现在SquareLine Studio的开发板列表中,并且您将能够为其导出项目。首先我们需要一个项目作为起点,这里以STM32F429-disco开发板为例,文件保存在Github上,Github超链接。
2023-10-14 22:20:53
14348
13
原创 【13】STM32·HAL库-正点原子SYSTEM文件夹 | SysTick工作原理、寄存器介绍 | printf函数使用、重定向
下面函数都是以sys_开头,定义在sys.c中。正点原子函数现阶段命名规则如果是在led.c中,则以led_开头。在F7/H7系列中会存在Cache配置函数,I-Cache中存储指令,D-Cache中存储数据。SysTick,即系统滴答定时器,包含在M3/4/7内核里面,核心是一个24位的递减计数器(最大计数值为224=16777216当计数器减至0时,证明延时成功,则让COUNTFLAG置1,并将重装载寄存器中的值赋给计数器,重装载值可以自己设置,取值范围是从0开始0~16777215。
2023-07-29 23:56:42
1959
原创 【12】STM32·HAL库开发-STM32时钟系统 | F1/F4/F7时钟树 | 配置系统时钟
下图的clk是clock(时钟)的缩写,下面的波形可以理解为脉冲信号或者方波。简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波。时钟是单片机的脉搏,搞懂时钟走向及关系,对单片机使用至关重要!
2023-07-26 23:48:19
4444
1
原创 【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤
STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成初始化代码(并不包括逻辑代码)。以下是STM32CubeMX官方宣传图片,适用于Windows和macOS系统,用于生成初始化代码,一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片,初始化代码使用的是HAL库。
2023-07-18 23:11:34
1756
原创 【10】STM32·HAL库开发-MAP文件解析 | STM32启动过程
*参考资料:**STM32 启动文件浅析.pdf1,初始化MSP:从0X0800 0000获取,因为从FLASH开始启动;2,初始化PC:从0X0800 0004获取;3,设置堆栈大小:Heap_Size(堆)、Stack_Size(栈),通过着两个宏来设置堆栈大小;4,初始化中断向量表:__Vectors定义;5,调用初始化函数:可选的,如调用: SystemInit函数;6,调用__main:标准C库函数,执行一系列设置,最终调用main函数。用户编写了main。
2023-07-17 22:55:12
1582
原创 【09】STM32·HAL库-新建HAL库版本MDK工程 | 下载STM32固件库
之前文章中已经总结如何下载,具体查看【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤中的第1.1小节。 新建HAL库版本MDK工程简要步骤:1.新建工程文件夹:D/M/O/P/U文件夹,5个文件夹;2.新建工程框架:工程命名,选芯片;3.添加文件:建分组,添加.s、.c;4.魔术棒设置:T/O/L/C/D/U,6个选项卡;5.添加main.c:编写自己的代码。 在桌面新建一个工程根目录文件夹,并在该文件夹里新建D/M/O/P
2023-07-16 20:33:49
2436
原创 【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项
CMSIS (微控制器软件接口标准):Cortex Microcontroller Software Interface Standard,是由ARM和与其合作的芯片厂商(比如ST、NXP公司等)、软件工具厂商(Keil、IAR公司等),共同制定的标准。如果没有此标准,ARM公司的产品兼容性非常差。下图中分为三层,第一层是用户层,主要是用户代码、在线调试;
2023-07-03 23:32:59
14923
1
原创 【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤
正点原子工程中的keilkill.bat文件会将Output文件夹中没用到的文件进行删除。
2023-06-21 10:52:30
2163
原创 【06】STM32·HAL库开发-STM系统框架 | STM32寻址范围 | STM32存储器映射 | STM32寄存器映射
Cortex-M3内核或M4/M7等和调试系统都是ARM公司设计,由ARM公司授权给其他芯片厂商,由其他芯片厂商添加内部总线、外设、存储器、时钟和复位 、IO以及芯片外部的外壳。除了内核和调试系统都是有芯片制造商设计开发,比如说ST公司等等。总结成一句话:MCU厂商,经ARM公司授权(授权内核、调试系统,调试系统内嵌到内核里面,绑定在一起的),添加不同的外设 = 各种XX32芯片(例如:ST公司的STM32,还有其他公司的APM32、GD32、MM32、HC32等》)。 上表中的AHB为高级高性能
2023-06-12 10:24:10
1656
1
原创 【05】STM32·HAL库开发-C语言基础知识 | stdint.h介绍 | 位操作 | 宏定义的使用 | 条件编译 | extern声明 | typdef使用 | 结构体、指针、代码规范介绍。
stdint.h 是从 C99 中引进的一个标准 C 库的文件,可以在MDK5的安装路径:D:\MDK5.34\ARM\ARMCC\include中找到。stdint.h 定义了很多类型别名,将有符号的char类型定义别名为int8_t等,使用此套别名有易于移植。在MDK中需要配置才能支持使用S99标准,默认是勾选的。宏定义可以:提高效率、可读性、易改性,核心是替换。# define 标识符 字符串标识符:宏定义的名字,变量一般为小写,为了区分宏定义和变量,标识符中的英文字母建议大写。
2023-06-07 22:20:38
3813
原创 【04】STM32·HAL库开发-MDK5使用技巧 |文本美化 | 代码编辑技巧 | 查找与替换技巧 | 编译问题定位 | 窗口视图初始化
前提:勾选【Browse infomation】,勾选上编译速度会变慢。
2023-06-06 22:11:09
826
1
原创 【03】STM32·HAL库开发-初识STM32 | STM概念、芯片分类、命名规则、选型 | STM32原理图设计、看数据手册、最小系统的组成 、STM32IO分配
STM32:ST是意法半导体,M是MCU/MPU,32是32位。 ST累计推出了:5大类、18个系列、1000多个型号的Cortex内核微控制器。 ST中文社区网地址 得到下面的图片,前面说的ST五大类是MPU、高性能MCU、主流MCU、超低功耗MCU、无线系列MCU。如果要了解F1的1000多种型号,可以点击网页中的【STM32 F1】下载选型手册。 ST官网地址 主要关注引脚数、闪存容量、封装、温度范围。 选型原则:由高到低,由大到小。高低是性能高低,大小是FLASH、S
2023-06-05 22:21:42
1344
1
原创 【02】STM32·HAL库开发-Cortex-M系列介绍 | Cortex内核分类及特征 | Cortex-M3/M4/M7介绍
ARM官网地址到目前位置Cortex-M系列有11个。以M3为例,点进去就可以下载其参考手册等。在ARM开发者官网可以找到类似内容:Cortex-M3-M7最终整理如下:中断Cortex-M3、M4、M7都是嵌套中断向量控制器NVIC,嵌套在内核中,不可屏蔽中断NMI,物理中断源和中断优先级都是内核提供,具体使用多少都是设计芯片的公司来决定,ST公司在F1系列中用到中断源60个、中断优先级16个。
2023-06-03 22:47:02
1644
原创 【01】STM32·HAL库开发-单片机简介 |用处、发展历程、发展趋势、CISC与RISC对比、冯诺依曼和哈佛结构对比
单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片。 RAM分为静态随机存储器SRAM和动态随机存储器DRAM,电脑的内存条是DRAM的一种,需要周期性地去刷新,存储周期短,不然会数据丢失;SRAM只要一直供电数据就不会丢失。掉电,SRAM和DRAM二者都会数据丢失。 上图中,电脑是64位,64除以8得8字节,8字节×5Ghz得40GB/s,单片机是32位的,32除以8得4字节,4字节×72MHz约300MB/s。 单片机特点:体积小
2023-06-03 00:25:58
814
1
原创 【04】数据结构与算法基础-类C语言有关操作补充 | 数组的静态、动态定义 | C、C++中内存分配 | C++中的参数传递方式-指针、数组、引用
int length;} SqList;//顺序表类型其中的ElemType可以是char、float等数据类型,根据具体类型进行修改,也可以通过或者提前定义。float p;int e;int length;} SqList;数组静态分配int length;} SqList;//顺序表类型通过以上方式定义数组,需要的内存大小是固定的,数组名“data”存放的是第一个元素data[0]的地址,也就是首地址或基地址。数动态分配int length;} SqList;//顺序表类型。
2023-06-01 16:24:21
566
原创 【03】数据结构与算法基础-线性表 | 线性表的定义和特征 |线性表的基础操作 | 线性表的存储表示、位置计算、定义模板
线性表是具有相同特性的数据元素的一个有限序列。比如:(a1,a2,…ai-1,ai,ai+1,…,ana1为线性起点,称作起始结点;an为线性终点,称作终端结点;中间任意一个元素称为数据元素或者结点;任意一个数据元素ai的前一个元素ai-1称为ai的直接前驱,后一个元素ai+1称为ai的直接后继;为了描述元素在线性表中的位置,我们给每个元素一个下标,下标是元素的序号,最后一个元素的序号n为元素总个数,也即是表长,n=0时称线性表为空表。综上所述。
2023-05-29 09:41:57
527
原创 卡尔曼滤波器-先验估计、后验估计、卡尔曼增益、先验误差协方差矩阵、更新协方差矩阵公式详细数学推导 | 由卡尔曼滤波器推导扩展卡尔曼滤波器
xk=Axk−1+Buk−1+wk−1zk=Hxk+vk\begin{align*}x_k&=Ax_{k-1}+Bu_{k-1}+w_{k-1}\\z_k&=Hx_k+v_k\end{align*}xkzk=Axk−1+Buk−1+wk−1=Hxk+vk 首先给出状态空间方程,其中xkx_kxk是状态变量,AAA是状态矩阵,BBB是控制矩阵,uk−1u_{k-1}uk−1是控制,wk−1w_{k-1}wk−1是过程噪声,过程噪声是不可测的,是不确定性的一种表现,但是在自
2023-05-15 14:43:11
909
1
原创 卡尔曼滤波器-概述及用递归思想解读卡尔曼滤波器 | 卡尔曼滤波器应用举例(附Matlab程序)| 数学基础-数据融合、协方差矩阵、状态空间方程
卡尔曼滤波器是最优化的(Optimal)、递归的(Recursive)、数字处理的(Data Processing)算法(Algorithm)。卡尔曼滤波器更像是观测器,而不是一般意义上的滤波器,应用广泛,尤其是在导航中,它的广泛应用是因为生活中存在大量的不确定性。 当描述一个系统的不确定性时,主要体现在三个方面:①不存在完美的数学模型;②系统的扰动不可控,也很难建模;③测量传感器本身存在误差。 找不同的人来测量硬币的尺寸,用zkz_kzk表示第kkk次的测量结果。因为每个人测量的结果不同加上
2023-05-12 17:18:36
797
1
原创 卡尔曼滤波器-公式简单推导 | 原理分析 | 将卡尔曼滤波器在MatLab中简单实现
从一维的简单情况来解释协方差:假设有一个一维的包含噪声的数据,每次测量值都不同,但都是围绕在一个中心值的周围,表示其分布状况最简单的方法就是记录其中心值和方差,这实际上是假设了其为高斯分布(又名“正态分布”)。现在来看二维的情况,对两个轴上进行投影都是高斯分布,如果两个噪声是独立的时候(如下图所示),可以直接记录其中心值和方差来表示其分布,此时协方差。将记录的两个维度的相关性写成矩阵的形式如下式(7)所示,对角线元素是两个维度各自的方差,反对角线值是相等的,是两个维度之间的协方差。
2023-05-10 22:18:44
544
原创 STM32-IAP基本原理及应用 | ICP、IAP程序下载流程 | 程序执行流程 | 配置IAP到STM32F4xxx
①在线编程(ICP,In-Circuit Programming):通过JTAG/SWD协议或者系统加载程序(Bootloader,串口)下载用户应用程序到微控制器中。②在程序中编程(IAP,In Application Programming):通过任何一种通信接口(如IO端口,USB,CAN,UART,I2C,SPI等)下载程序或者应用数据到存储器中(需要在此前通过在线编程中的一种下载方式已经下载好了一段代码到FLASH前面的一段区域。
2023-05-04 17:45:43
4334
3
原创 【02】数据结构与算法基础-算法与算法分析 | 算法的定义、描述方式、程序、特性、设计要求 | 时间复杂度度量方法及计算方法 | 常用算法时间复杂度比较 | 空间复杂度计算
对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。简而言之,算法就是解决问题的方法和步骤。
2023-04-25 16:04:45
104
原创 【01】数据结构与算法基础-数据、数据元素、数据项和数据对象 | 数据类型和抽象数据类型 | 抽象数据类型的表示和C++实现
抽象是指从具体事务中抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程称为抽象。抽象数据模型是指一个数学模型以及定义在此数据模型上的一组操作。抽象数据模型是由用户定义,从问题抽象出数据模型(逻辑结构);还包括定义在数据模型上的一组抽象运算(相关操作);不考虑计算机内的具体存储结构与运算的具体实现算法。抽象数据类型的形式定义一个具体问题的抽象数据类型通常采用简洁、严谨的文字描述,我们把简介的、严谨的文字描述称为形式定义,比如用数学语言。
2023-04-23 16:25:18
556
原创 【02】惯性导航-惯性导航系统(INS)| 惯性导航系统原理 | 单多自由度惯性导航 | 捷联式系统与平台式系统 | INS精度等级 | 惯性器件测量能力量化
如上所示,所谓平台式系统就是弄一个机械平台或惯性稳定平台,让平台的轴线始终和正东、正北对齐,不会随着载体的航线改变而受影响,将加速度计固定在惯性稳定平台上,指向正东的加速度计永远指向正东,指向正北的加速度计永远指向正北,此时可以根据东向加速度计得到东向速(为初始姿态角误差,捷联系统是对初始姿态角进行积分,如果初始姿态角有常值误差,未来的时刻都将存在误差,此常值偏差将被用来输出姿态时有常值偏差,抵消地球万有引力时也会存在常值偏差。为初始位置误差,任何积分推算系统,如果初始位置有误差,之后都将存在误差。
2023-04-10 09:19:45
911
1
原创 【03】OpenCV基本操作(1)-颜色模型介绍与相互转换 | 图像多通道分离与合并 | 寻找图像像素最值 | 计算图像均值与标准差 | 图像的比较、逻辑运算、二值化、LUT操作
通过红、绿、蓝三种颜色按不同比例混合让图像呈现五彩斑斓的颜色,这种模型称为RGB模型,颜色模型还有YHV、HSV等模型。图像用多通道的形式储存红色、绿色、蓝色分量或者图像亮度、色度、饱和度等分量。了解图像颜色空间对分割拥有颜色区分特征的图像有很大帮助,例如提取图像中的红色物体可以通过比较图像红色通道的像素值来实现。 RGB分别是三种颜色的英文首字母,Red(红色)、Green(绿色)、Blue(蓝色)。OpenCV中存储图像是相反顺序,但是两种形式的颜色空间是一致的,第一通道是蓝色分量、第二通道是绿色
2023-04-06 15:05:23
312
1
原创 【01】惯性导航-简介及惯性传感器
导航狭义的定义: 运动物体随时间变化的位置、速度和姿态的确定(感知和测量部分广义的导航是需要告诉从一个点A到到点B如何过去,包括感知测量、中间的控制、宏观的规划等完成整个导航任务。导航状态包括位置、速度和姿态(PVA)。导航器件是传感器,但是传感器不一定是我们导航所需要的数据,输出的数据无法直接使用,需要进行加工、解算。导航器件加上算法就组成了导航系统。导航传感器和导航系统差异:导航系统是一个完整的、能达到最终目的的,可能包含很多东西。而导航传感器是最原始的感知部分。
2023-03-29 19:40:33
410
原创 【02】OpenCV数据载入、显示与保存
在版本较老的OpenCV版本中,例如OpenCV1.0中,图像存储用的是C语言中的IplImage的结构体,由于其使用后需要用户手动释放内存,程序结束不释放内存容易造成内存泄露的缺点,OpenCV较新版本使用了C++接口中的Mat类,利用自动内存管理技术解决了自动释放内存的问题。Mat类用来保存矩阵类型的数据,包括向量、矩阵、灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。矩阵头中包括矩阵的尺寸、存储方法、地址和引用次数等。矩阵头的大小是一个常数,不会随着矩阵尺寸的大小而改变。
2023-03-26 13:58:01
694
1
原创 【01】OpenCV模块架构介绍+示例程序演示
calib3d:此模块名称由calbration(校准)和3D两部分缩写而成。顾名思义,该模块主要包含相机标定与立体视觉等功能,例如物体位姿估计、三位重建、摄像头标定等。core:核心功能模块。这个模块主要包含OpenCV库的基础结构以及基础操作,例如OpenCV基础数据结构、绘图函数、数组操作相关函数、动态数据结构等。dnn:深度学习模块。主要包括构建和修改神经网络、加载序列化网络模型等。该模块功能仅用于前向传递计算(即测试网络),原则上不支持网络训练。features2d。
2023-03-12 19:38:56
941
原创 【11】FreeRTOS的延时函数
函数描述相对延时绝对延时相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束(任务被阻塞的时间,到调用此函数开始的时间);绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务(整个任务执行的时间,从头到尾的时间)。[^1]上图中的为绝对延时时间(假如绝对延时时间为100ms,那么以下三部分之和为100ms),包括以下三部分:(1)为任务主体,也就是任务真正要做的工作;
2023-02-22 11:33:55
5481
LVGL-CodeBlocks工程
2023-10-22
新建STM32CubeMX工程(STM32F103RCT6)
2023-07-18
触摸小夜灯(USB最终版).rar
2021-10-31
触摸小夜灯(带纽扣电池).rar
2021-10-31
51单片机入门__心形灯__安卓接口供电
2021-08-25
PCB直尺__AD20,硬件设计必备辅助工具
2021-08-25
用python写俄罗斯方块(每7分有烟花奖励).rar
2021-08-14
51单片机没有检测到可用串口
2021-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人