自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 PATH环境变量

例如,如果你安装了一个新的软件,通常需要将该软件的可执行文件路径添加到PATH环境变量中,这样你就可以在任何位置通过命令行启动它。当你在命令行中输入一个命令时,系统会在这些路径中查找对应的可执行文件。总的来说,PATH环境变量在Windows系统中起着至关重要的作用,它确保了用户能够在不同位置执行命令,而无需记住每个程序的具体安装路径。此外,如果系统在所有PATH中的路径都未找到对应的可执行文件,那么系统会显示“命令未找到”的错误信息。当在命令行中输入一个命令时,系统会在这些路径中查找可执行文件。

2024-05-04 09:00:09 588

原创 【Linux-I.MX6ULL裸机学习】中断向量表

代码来自于正点原子阿尔法Linux开发板光盘比如在中断向量表中规定了:在某个地址0x80000A对应着某个中断服务函数,那么在产生这个中断时,就会从0x80000A这个地址去读取中断服务函数,并执行。如果想改变这个地址,也就是要设置地址偏移。具体要做的:需要修改SCB的 VTOR 寄存器为新的中断向量表起始地址。ARM-A7 的中断向量表:你可能会问了:啊?!我的那些外设所需要的外部中断就只有“IRQ interrupt”这一个中断吗?这够吗?

2024-05-04 08:47:21 269

原创 【无线通信开发应用】nRF905数据手册深度解读

希望通过两个stm32、两个nRF905无线通信模块、串口来实现两机通信。但是网络上鲜有NRF905模块的深层解读,故引出此文,主要解读NRF905的官方英文文档,以及部分重要的库函数封装,不涉及功能逻辑,不上传整个工程。

2024-05-01 23:02:55 1088 1

原创 Keil中使用模拟器调试

首先在“魔术棒”选项 -> “Debug” -> 勾选"use simulator"。工程最好存放在英文路径下,否则退出调试时会报错,需要强制退出keil。在 for 循环里执行几次,也就是在buf里写入几个字母。可以看到,buf 的起始地址为0x20000004。来看看 buf 里面现在是什么。打上断点,并且“一路执行”查看变量 buf。

2024-04-29 19:46:15 129

原创 通过反汇编深入理解栈

若想更好地理解函数的多级调用、线程切换其本质,都需要对栈有更加深入的认识。

2024-04-28 21:33:22 131

原创 【Leetcode笔记】236.二叉树的最近公共祖先

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。测试代码中 p、q 的定义,不能简单地定义一个根节点,本题适合从下往上遍历,所以使用。

2024-04-22 12:00:12 374

原创 【Leetcode笔记】501.二叉搜索树中的众数

首先,传入的是 a 和 b 的引用,这样可以提高效率,避免复制操作产生临时变量;另外,因为在排序过程中,sort函数会频繁地访问这些参数,通过将参数声明为const,可以保证这些参数在函数执行过程中不会被修改,增强安全性和可读性。给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。虽然题目对于BST的定义已经违背常识  ̄へ ̄,但依据题意扩展解题思路是有意义的。而全局范围定义的函数就可以不用创建类的实例而直接调用,其次就是只要求出现频次。

2024-04-22 11:30:22 404

原创 【Leetcode笔记】106.从中序与后序遍历序列构造二叉树

ACM模式,含日志调试。

2024-04-19 10:00:16 372

原创 【Leetcode笔记】404.左叶子之和

这么久过去了,递归仍然是压4我的一座大山啊啊啊啊啊~~~~~

2024-04-16 15:45:42 67

原创 【Leetcode笔记】222.完全二叉树的节点个数

时间复杂度 O(n)

2024-04-15 13:14:59 64

原创 【Leetcode笔记】102.二叉树的层序遍历

【代码】【Leetcode笔记】102.二叉树的层序遍历。

2024-04-03 16:23:33 245

原创 【备战蓝桥杯】考前快速大纲

题目要求“使用USB转串口功能完成查询功能:PC端通过串口调试助手向设备发送字符‘X’返回当前频率参数,串口通信波特率设置9600”(13th国赛)。除了要安装串口调试助手,我们还要在CubeMX中打开任意一个USART。EEPROM可以简单理解为是一个掉电不丢失的存储模块,相对于g431,它是一个从机,所以呢,需要用软件IIC来进行主从机的通信。在之前的文章《软硬件对按键消抖》中有提到两种消抖方法:逻辑运算消抖和定时器中断消抖。,可以同时实现按键消抖、长短按以及双击单击(当然,要搭配定时器中断来使用)。

2024-04-02 23:10:00 584

原创 【LeetCode笔记】巧妙写出二叉树前中后序遍历

一条根本原则:一根线从二叉树的根的左部不间断地画到根的右部,要绕整个二叉树一圈。前序遍历,就让每个节点拥有一个左侧的“句柄”;中序遍历,就让每个节点拥有一个底侧的“句柄”;后续遍历,就让每个节点拥有一个右侧的“句柄”。

2024-04-02 11:30:54 514 1

原创 【LeetCode笔记】347.前 K 个高频元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于Onlogn, n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺序返回答案。

2024-03-31 10:01:57 340 1

原创 【Linux笔记】解读Makefile

在对整个工程进行BSP工程管理之后,驱动、始终、延时等函数的源文件和头文件都放置在了不同的文件夹下,这样在编写 Makefile 的时候每次都需要编写路径,很麻烦。

2024-03-28 16:48:10 301 1

原创 Ubantu安装VS Code失败

不想再折腾更新 glibc 了,既然是库的版本过低,那不妨。3. 进入 root 模式,继续执行第2步。如上图,可以下载历史版本的 VS Code。,即可安装 VS Code。

2024-03-26 21:05:18 323

原创 【leetcode笔记】KMP算法

应用:力扣 28. 实现 strStr()。

2024-03-20 19:54:02 106 1

原创 【LeetCode】栈溢出报错

在计算机中,整数类型(如int、long等)有一定的取值范围。当进行加法运算时,如果两个整数的和超过了该类型的取值范围,就会发生溢出,导致结果不正确。为了避免这种情况,可以使用强制类型转换将其中一个或多个操作数转换为更大的整数类型,以确保运算过程中不会发生溢出。这个问题很常见,就是访问到非法内存,一般就是数组越界了。,试图去访问nums[-1]了。,将其强制转换成 long 类型。我们在nums[k]前面加一个。上面这段代码执行出错,这里改完之后继续报错,

2024-02-27 10:37:48 355

原创 windows复制的文件无法粘贴到虚拟机

另外,以上命令均使用了 sudo,sudo(super user do)也就是权限很高。所以首次使用 sudo 时需要输入密码,在一段时间内可能无需再次输入密码。【解决办法】转自博主From now on…【问题描述】windows复制的文件无法粘贴到虚拟机。

2024-02-03 20:25:07 702 1

原创 下载的KEIL工程打开失败?

【问题描述】从网上下载的keil工程打开失败,显示“read only”。【解决方法】路径不应包含中文 or 该文件夹未解压缩。

2024-01-21 23:58:26 329 1

原创 软硬件对按键消抖

选择哪种方法取决于具体的应用需求和系统资源的限制。在一些简单的嵌入式系统中,逻辑运算的方法可能足够满足要求。在对按键响应时间、稳定性等要求较高的系统中,使用定时器结合中断的方法可能更为合适。在t1产生中断,这时不马上确定按键,而是复位定时器,假设周期时20ms,超时时间为"t1+20ms"由于抖动,在t2再次产生中断,再次复位定时器,超时时间变为"t2+20ms"由于抖动,在t3再次产生中断,再次复位定时器,超时时间变为"t3+20ms"在"t3+20ms"处,按键已经稳定,读取按键值。

2024-01-15 20:26:18 357

原创 【FreeRTOS学习笔记】CHA3 - 任务管理

滴答中断的频率由 configTICK_RATE_HZ 决定,一般情况下,这个值设置为100比较多,对应的时间片就是10毫秒。main() 函数在启动调度器之前创建任务。具体实现如清单3 所示。代码如清单8, 9所示。1.3. 滴答中断(任务调度器)1.0. 相关的 API函数。

2024-01-14 10:11:39 431 1

原创 【FreeRTOS学习笔记】CHA2-堆内存管理

3. 与堆相关的实用函数。2. 内存分配方案示例。

2024-01-11 18:59:05 929 1

原创 【Leetcode笔记】动态规划-647. 回文子串

【代码】【Leetcode笔记】动态规划-647. 回文子串。

2024-01-10 18:20:49 477

原创 【Leetcode笔记】动态规划-115.不同的子序列

【代码】【Leetcode笔记】动态规划-115.不同的子序列。

2023-12-30 21:15:32 380 1

原创 【FreeRTOS学习笔记】CHA1 - FreeRTOS发行版

FreeRTOS - CHA1

2023-12-29 11:32:49 464 1

原创 GPIO的输出模式——开漏输出&推挽输出

GPIO的输出模式有四种,看到一篇文章,其中‘开漏输出’和‘推挽输出’的形象理解如下:

2023-12-25 11:34:50 645

原创 【LeetCode笔记】300 - 最长递增子序列

【代码】【LeetCode笔记】300 - 最长递增子序列。

2023-12-25 09:54:29 310

原创 【备战蓝桥杯】蓝桥杯十四届省赛真题

首先,在时钟树中配置了systick的频率为80MHz;其次,我们需要知道systick的重装载值,也就是下面的SysTick_Type ->LOAD。在HAL库中,会默认生成1ms触发中断。追踪HAL库代码。文件位置“stm32g4xx_hal.c”./***/= 0U)elseelseelse如果想手动调整中断触发间隔,需要修改的是uwTickFreq,stm32g4xx_hal.c中默认设置为1KHz。

2023-12-18 21:59:00 1166 3

原创 【备战蓝桥杯】STM32CubeMX生成代码时报错

配置STM32CubeMX时,由于比赛训练板使用的是STM32G4XX系列,所以需要下载对应的固件库。

2023-11-27 21:13:05 1277

原创 【Leetcode笔记】1 - 738. 单调递增的数字

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2023-11-16 16:42:45 22

原创 【基础概念】字长为8/16/32/64位?

【基础概念】看到“通用寄存器”章节中,有一句话“通用寄存器包括R0~R12。R0 ~ R7 也被称为低组寄存器。它们的字长全是32位。所有指令(包括16位的和32位的)都能访问它们。” … 一直不太明白‘位、字、字长、字节’等等吧,这些概念的区别,查一查以便后续复习。【基础概念】位、字节、字、字长。

2023-11-16 14:05:24 87 2

空空如也

空空如也

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

TA关注的人

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