自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小浪宝宝的博客

想要安静的心,却异常躁动...

  • 博客(113)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 【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 1281 1

原创 【01】深度学习——数学基础 | 线性代数 | 微积分 |概率

内积还可以表示两个向量的线性相关程度,比如将两个向量规范化得到单位向量,二者的内积就是夹角值的余弦,越接近于1则二者更相关,等于0则二者正交(垂直),二者线性无关。Maximum Likelihood Estimation,MLE:利用已知的样本结果,反推最优可能导致这样结果的参数,即找到参数的最大概率取值。概率是个人的主观概念,表面我们对事务的相信程度,通过观测得到的数据对结果进行更新,从而得到更为准确的估计。单位向量:是模长固定为1的向量,它通常用来表示的是向量在空间中的方向,而不是大小。

2024-01-25 22:46:15 449 2

原创 在Ubuntu20.04配置PX4环境

pwd=5npl 提取码:5npl。找到“软件和更新”,选择aliyun服务器,——>【关闭】——>【重新载入】,等待进度条完毕就更管成功。出现“Configuring incomplete, errors occurred!",这是由于没有将软件源改为国内软件源,如果意外退出下载,第二次进入下载的时候缓存会被锁住。在主目录下打开终端,运行以下命令,

2023-12-27 21:50:23 1157

原创 什么GAN生成对抗网络?生成对抗网络可以干什么?

新手画家用随机灵感画画,新手鉴赏家接收到一些画作,但是不知道是新手画的还是著名画家画的,他说出了自己的判断,你来纠正他的判断,新手鉴赏家一边学习如何判断,一边告诉新手画家如何作画才能更像著名画家,新手画家就能学习到如何从自己的灵感中画出更好的著名画作了,GAN也就那么一回事。新手鉴赏家和新手画家是好朋友,彼此之间总爱分享学到的东西,所以新手鉴赏家告诉新手画家哪里做的不好,学习一下别人达芬奇,新手鉴赏家从你这里学到的知识,都教给了新手画家, 让好朋友新手画家也越来越厉害。

2023-11-07 22:32:00 719

原创 【01】LVGL-CodeBlock模拟器安装 | LVGL工程下载 | PC端模拟LVGL步骤

LVGL模拟器:使用PC端软件模拟LVGL运行,而不需要任何嵌入式硬件。优点:便于学习、跨平台协同开发。

2023-10-19 22:52:24 1614

原创 【LVGL】SquareLine Studio入门基础操作

在本小节中将介绍SquareLine Studio中支持任意自定义开发板,我们称之为Open Board Platform(OBP),简单来说,这意味着您可以创建一个模板项目和一个相邻的scripture文件,将他们复制到SquareLine Studio的文件夹中,该开发板将出现在SquareLine Studio的开发板列表中,并且您将能够为其导出项目。首先我们需要一个项目作为起点,这里以STM32F429-disco开发板为例,文件保存在Github上,Github超链接。

2023-10-14 22:20:53 6444 7

原创 【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 1544

原创 【12】STM32·HAL库开发-STM32时钟系统 | F1/F4/F7时钟树 | 配置系统时钟

下图的clk是clock(时钟)的缩写,下面的波形可以理解为脉冲信号或者方波。简单来说,时钟是具有周期性的脉冲信号,最常用的是占空比50%的方波。时钟是单片机的脉搏,搞懂时钟走向及关系,对单片机使用至关重要!

2023-07-26 23:48:19 3324 1

原创 【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤

STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成初始化代码(并不包括逻辑代码)。以下是STM32CubeMX官方宣传图片,适用于Windows和macOS系统,用于生成初始化代码,一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片,初始化代码使用的是HAL库。

2023-07-18 23:11:34 1360

原创 【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 1182

原创 【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 1918

原创 【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 12431 1

原创 【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤

正点原子工程中的keilkill.bat文件会将Output文件夹中没用到的文件进行删除。

2023-06-21 10:52:30 1942

原创 【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 1459 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 3156

原创 【04】STM32·HAL库开发-MDK5使用技巧 |文本美化 | 代码编辑技巧 | 查找与替换技巧 | 编译问题定位 | 窗口视图初始化

前提:勾选【Browse infomation】,勾选上编译速度会变慢。

2023-06-06 22:11:09 666 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 1071 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 1421

原创 【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 664

原创 【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 530

原创 【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 489

原创 卡尔曼滤波器-先验估计、后验估计、卡尔曼增益、先验误差协方差矩阵、更新协方差矩阵公式详细数学推导 | 由卡尔曼滤波器推导扩展卡尔曼滤波器

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*}xk​zk​​=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 613 2

原创 卡尔曼滤波器-概述及用递归思想解读卡尔曼滤波器 | 卡尔曼滤波器应用举例(附Matlab程序)| 数学基础-数据融合、协方差矩阵、状态空间方程

  卡尔曼滤波器是最优化的(Optimal)、递归的(Recursive)、数字处理的(Data Processing)算法(Algorithm)。卡尔曼滤波器更像是观测器,而不是一般意义上的滤波器,应用广泛,尤其是在导航中,它的广泛应用是因为生活中存在大量的不确定性。  当描述一个系统的不确定性时,主要体现在三个方面:①不存在完美的数学模型;②系统的扰动不可控,也很难建模;③测量传感器本身存在误差。  找不同的人来测量硬币的尺寸,用zkz_kzk​表示第kkk次的测量结果。因为每个人测量的结果不同加上

2023-05-12 17:18:36 727 1

原创 卡尔曼滤波器-公式简单推导 | 原理分析 | 将卡尔曼滤波器在MatLab中简单实现

从一维的简单情况来解释协方差:假设有一个一维的包含噪声的数据,每次测量值都不同,但都是围绕在一个中心值的周围,表示其分布状况最简单的方法就是记录其中心值和方差,这实际上是假设了其为高斯分布(又名“正态分布”)。现在来看二维的情况,对两个轴上进行投影都是高斯分布,如果两个噪声是独立的时候(如下图所示),可以直接记录其中心值和方差来表示其分布,此时协方差。将记录的两个维度的相关性写成矩阵的形式如下式(7)所示,对角线元素是两个维度各自的方差,反对角线值是相等的,是两个维度之间的协方差。

2023-05-10 22:18:44 465

原创 在Ubuntu18.04中安装uWebSockets库

首先说明这里使用的Ubuntu版本为18.04。

2023-05-06 16:31:54 1200 1

原创 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 3567 3

原创 【02】数据结构与算法基础-算法与算法分析 | 算法的定义、描述方式、程序、特性、设计要求 | 时间复杂度度量方法及计算方法 | 常用算法时间复杂度比较 | 空间复杂度计算

对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。简而言之,算法就是解决问题的方法和步骤。

2023-04-25 16:04:45 57

原创 【01】数据结构与算法基础-数据、数据元素、数据项和数据对象 | 数据类型和抽象数据类型 | 抽象数据类型的表示和C++实现

抽象是指从具体事务中抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程称为抽象。抽象数据模型是指一个数学模型以及定义在此数据模型上的一组操作。抽象数据模型是由用户定义,从问题抽象出数据模型(逻辑结构);还包括定义在数据模型上的一组抽象运算(相关操作);不考虑计算机内的具体存储结构与运算的具体实现算法。抽象数据类型的形式定义一个具体问题的抽象数据类型通常采用简洁、严谨的文字描述,我们把简介的、严谨的文字描述称为形式定义,比如用数学语言。

2023-04-23 16:25:18 519

原创 【02】惯性导航-惯性导航系统(INS)| 惯性导航系统原理 | 单多自由度惯性导航 | 捷联式系统与平台式系统 | INS精度等级 | 惯性器件测量能力量化

如上所示,所谓平台式系统就是弄一个机械平台或惯性稳定平台,让平台的轴线始终和正东、正北对齐,不会随着载体的航线改变而受影响,将加速度计固定在惯性稳定平台上,指向正东的加速度计永远指向正东,指向正北的加速度计永远指向正北,此时可以根据东向加速度计得到东向速(为初始姿态角误差,捷联系统是对初始姿态角进行积分,如果初始姿态角有常值误差,未来的时刻都将存在误差,此常值偏差将被用来输出姿态时有常值偏差,抵消地球万有引力时也会存在常值偏差。为初始位置误差,任何积分推算系统,如果初始位置有误差,之后都将存在误差。

2023-04-10 09:19:45 513 1

原创 【03】OpenCV基本操作(1)-颜色模型介绍与相互转换 | 图像多通道分离与合并 | 寻找图像像素最值 | 计算图像均值与标准差 | 图像的比较、逻辑运算、二值化、LUT操作

  通过红、绿、蓝三种颜色按不同比例混合让图像呈现五彩斑斓的颜色,这种模型称为RGB模型,颜色模型还有YHV、HSV等模型。图像用多通道的形式储存红色、绿色、蓝色分量或者图像亮度、色度、饱和度等分量。了解图像颜色空间对分割拥有颜色区分特征的图像有很大帮助,例如提取图像中的红色物体可以通过比较图像红色通道的像素值来实现。  RGB分别是三种颜色的英文首字母,Red(红色)、Green(绿色)、Blue(蓝色)。OpenCV中存储图像是相反顺序,但是两种形式的颜色空间是一致的,第一通道是蓝色分量、第二通道是绿色

2023-04-06 15:05:23 234 1

原创 【01】惯性导航-简介及惯性传感器

导航狭义的定义: 运动物体随时间变化的位置、速度和姿态的确定(感知和测量部分广义的导航是需要告诉从一个点A到到点B如何过去,包括感知测量、中间的控制、宏观的规划等完成整个导航任务。导航状态包括位置、速度和姿态(PVA)。导航器件是传感器,但是传感器不一定是我们导航所需要的数据,输出的数据无法直接使用,需要进行加工、解算。导航器件加上算法就组成了导航系统。导航传感器和导航系统差异:导航系统是一个完整的、能达到最终目的的,可能包含很多东西。而导航传感器是最原始的感知部分。

2023-03-29 19:40:33 291

原创 【02】OpenCV数据载入、显示与保存

在版本较老的OpenCV版本中,例如OpenCV1.0中,图像存储用的是C语言中的IplImage的结构体,由于其使用后需要用户手动释放内存,程序结束不释放内存容易造成内存泄露的缺点,OpenCV较新版本使用了C++接口中的Mat类,利用自动内存管理技术解决了自动释放内存的问题。Mat类用来保存矩阵类型的数据,包括向量、矩阵、灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。矩阵头中包括矩阵的尺寸、存储方法、地址和引用次数等。矩阵头的大小是一个常数,不会随着矩阵尺寸的大小而改变。

2023-03-26 13:58:01 587 1

原创 【01】OpenCV模块架构介绍+示例程序演示

calib3d:此模块名称由calbration(校准)和3D两部分缩写而成。顾名思义,该模块主要包含相机标定与立体视觉等功能,例如物体位姿估计、三位重建、摄像头标定等。core:核心功能模块。这个模块主要包含OpenCV库的基础结构以及基础操作,例如OpenCV基础数据结构、绘图函数、数组操作相关函数、动态数据结构等。dnn:深度学习模块。主要包括构建和修改神经网络、加载序列化网络模型等。该模块功能仅用于前向传递计算(即测试网络),原则上不支持网络训练。features2d。

2023-03-12 19:38:56 674

原创 【11】FreeRTOS的延时函数

函数描述相对延时绝对延时相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束(任务被阻塞的时间,到调用此函数开始的时间);绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务(整个任务执行的时间,从头到尾的时间)。[^1]上图中的为绝对延时时间(假如绝对延时时间为100ms,那么以下三部分之和为100ms),包括以下三部分:(1)为任务主体,也就是任务真正要做的工作;

2023-02-22 11:33:55 4008

原创 【10】FreeRTOS的任务相关API函数

由于函数太多,这里主要讲述API函数如何使用。可结合正点原子《FreeRTOS开发手册》第11章内容“FreeRTOS其他任务API函数”进行学习。函数描述获取任务优先级设置任务优先级获取系统中任务的数量获取所有任务状态信息获取指定单个的任务信息获取当前任务的任务句柄根据任务名获取该任务的任务句柄获取任务的任务栈历史剩余最小值(可根据历史最小值设置任务堆栈大小)获取任务状态以“表格”形式获取所有任务的信息获取任务的运行时间(统计任务运行总的时间)如果不清楚API函数如何使用还可在FreeRTOS官网。

2023-02-21 09:41:34 331

原创 【09】FreeRTOS的时间片调度

同等优先级任务轮流地享有相同的 CPU 时间(可设置), 叫时间片,在FreeRTOS中,一个时间片就等于SysTick 中断周期。在源码中,SysTick中断服务函数1ms中断一次,一个时间片就是1ms,滴答定时器SysTick的中断周期可以自己设置。时间片调度运行举例:1、创建三个任务:Task1、Task2、Task32、Task1、Task2、Task3的优先级均为1;即3个任务同等优先级1、首先Task1运行完一个时间片后,切换至Task2运行(

2023-02-05 18:04:47 2661 2

原创 【08】FreeRTOS的任务调度

程序在运行过程中需要一定的栈空间来保存局部变量等一些信息。当有信息保存到栈中时, MCU 会自动更新 SP 指针(也就是R13主堆栈指针(MSP):它由 OS 内核、异常服务例程以及所有需要特权访问的应用程序代码来使用。进程堆栈指针(PSP):用于常规的应用程序代码(不处于异常服务例程中时)。在FreeRTOS中,中断使用MSP(主堆栈),中断以外使用PSP(进程堆栈)。在FreeRTOS中使用的是双堆栈指针,裸机无论是进程还是中断都是使用的MSP主堆栈指针。

2023-02-04 16:46:02 1628 3

原创 【07】FreeRTOS的列表和列表项

listFIRST_LIST_INTEGRITY_CHECK_VALUE /* 校验值 *//* 列表中的列表项数量 */ListItem_t * configLIST_VOLATILE pxIndex /* 用于遍历列表项的指针 */MiniListItem_t xListEnd /* 末尾列表项 */listSECOND_LIST_INTEGRITY_CHECK_VALUE /* 校验值 */} List_t;

2023-02-02 22:10:01 670

原创 【06】FreeRTOS临界段代码保护及调度器挂起与恢复

临界段代码也叫做临界区,是指那些必须完整运行不能被打断的代码段。适用的场合,例如1,外设:需严格按照时序初始化的外设:IIC、SPI等等;2,系统:系统自身需求(FreeRTOS源码很多地方用到了临界段代码保护,属于系统自身的需求3,用户:用户需求(用户想某些代码段不想被打断可以打断当前程序运行的情况:1、中断;2、任务调度(高优先级的任务可以抢占低优先级的任务如果不想被打断,则关闭中断。这样做有两个好处,1是关闭了中断,中断将不再打断正在运行的程序;

2023-01-31 15:53:51 1193

原创 【05】FreeRTOS的中断管理

简介:让CPU打断正常运行的程序,转而去处理紧急的事件(程序,ISR中断服务函数),就叫中断。中断执行机制,可简单概括为三步:1,中断请求:外设产生中断请求(GPIO外部中断、定时器中断等);2,响应中断:CPU停止执行当前程序,转而去执行中断处理程序(ISR);3,退出中断:执行完毕,返回被打断的程序处,继续往下执行。打断哪个点,就返回哪个点继续执行举例说明:小明在看视频的时候突然肚子疼,必须要上厕所,打断看视频的任务,去上厕所, 暂停视频播放,上完厕所后,继续从暂停处继续观看视频。

2023-01-30 22:11:17 4534 1

LVGL-CodeBlocks工程

配套文章【01】【01】LVGL-CodeBlock模拟器安装 | LVGL工程下载 | PC端模拟LVGL步骤。地址:http://t.csdnimg.cn/pj1mA

2023-10-22

新建STM32CubeMX工程(STM32F103RCT6)

与文章【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤 配套

2023-07-18

新建HAL库版本MDK工程

与文章配套【09】STM32·HAL库-新建HAL库版本MDK工程 | 下载STM32固件库 配套,链接http://t.csdn.cn/UgMLM

2023-07-17

STM32F103RCT6寄存器版本MDK工程

和文章《【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤》配套

2023-06-21

FreeRTOS移植测试程序

搭配FreeRTOS移植过程进行使用,链接:http://t.csdn.cn/dB16A

2023-01-07

FreeRTOS基础知识思维导图

此文件请用MIndMaster打开,里面总结了FreeRTOS的三种任务调度方式和四种状态之间的转化关系。

2022-12-07

触摸小夜灯(USB最终版).rar

我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《根据RH6616芯片设计星星“触摸小夜灯”(纽扣电池供电)》, 一起来围观吧 https://blog.csdn.net/m0_52162042/article/details/120007902?utm_source=app&app_version=4.17.0

2021-10-31

触摸小夜灯(带纽扣电池).rar

我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《根据RH6616芯片设计星星“触摸小夜灯”(纽扣电池供电)》, 一起来围观吧 https://blog.csdn.net/m0_52162042/article/details/120007902?utm_source=app&app_version=4.17.0

2021-10-31

51单片机入门__心形灯__安卓接口供电

此文件包括Keil C程序、器件表、PCB的AD文件、原理图库。板子是8*7cm心型,每个灯的角度测量得出。尽可能去浓缩板子大小,单面板,没有打孔。如果需要,关注私聊博主免费拿。

2021-08-25

PCB直尺__AD20,硬件设计必备辅助工具

20cm和8inch的直尺,包含了电阻、电容、电感通用型号、一些常用的孔径,角度、线宽和电流参考表、一些通用线条可二次设计,为.PcbDoc文件。如果需要,帮忙点下关注,私聊博主免费送

2021-08-25

用python写俄罗斯方块(每7分有烟花奖励).rar

通过定义了两个类和四个函数来实现。四个函数主要用来绘制页面。Brick类用来表示砖块,Block类用来实现游戏页面的布局,包括砖块的绘制,旋转,下降,移动。 方块最难的是需要实现旋转功能,在最终实现的时候,这些图形都是画在界面上的,而每一次刷新,界面上所有内容都会被清空重画。所以旋转只是画当前方块的时候不再画之前的形状,而是画旋转后的形状。

2021-08-14

西门子挑战赛——离散行业自动化省赛一等奖程序

此程序主要是供大家参考和使用,三部十层电梯,三号梯为货梯,具体使用的时候,大家需要根据具体要求进行稍微修改。

2021-08-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除