自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GPIO--按键检测实战

在编写按键驱动时,也要考虑更改硬件环境的情况。我们把按键检测引脚相关的宏定义到“bsp_key.h”文件中// 引脚定义当然这是根据不同的硬件设施来写操作的端口和引脚,具体哪个端口和引脚请自行查阅手册。

2024-07-20 20:27:19 693

原创 断言和注释规范和编译技巧

当这个头文件被同一个文件第二次“#include”包含的时候,由于有了第一次包含中的“#define __LED_H”定义,这时再判断“#ifndef__LED_H”,判断的结果就是假了,从“#ifndef”至“#endif”之间的内容都无效,从而防止了同一个头文件被包含多次,编译时就不会出现“redefine。“bsp_led.h”文件中使用了“#include“stm32f10x.h””语句,按习惯,可能我们写主程序的时候会在 main 文件写“#include“bsp_led.h”

2024-07-20 11:52:48 500

原创 使用库函数新建工程

如图在 F1 标准库工程组织中的 CMSIS 部分的 core_cm3.c 实际是不需要的,是否留在工程里面没有任何影响,所有例程中都没有使用到它,此文件为官方库保留,已被其他代替。在新建的工程中添加 5 个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。注意这个配置很重要,后续出现仿真器检测不到,出现编译,下载的问题的原因基本都在这里。在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

2024-07-20 11:09:22 788

原创 新建工程时的文件及常见错误

_main 其实不是我们定义的 (不要与 C 语言中的 main 函数混淆),这是一个 C 库函数,当编译器编译时,只要遇到这个标号就会定义这个函数,该函数的主要功能是:负责初始化栈、堆,配置系统环境,并在函数的最后调用用户编写的 main 函数,从此来到 C 的世界。名为“startup_stm32f10x_hd.s”的文件,它里边使用汇编语言写好了基本程序,当 STM32 芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起 C 语言的运行环境,所以我们把这个文。”,相当于 C 语言的。

2024-07-19 19:52:28 420

原创 GPIO简介

GPIO 是通用输入输出端口的简称,简单来说就是 STM32 可控制的引脚,STM32 芯片的 GPIO 引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32 芯片的 GPIO被分成很多组,每组有 16 个引脚。

2024-07-19 18:25:26 877

原创 修改寄存器的位操作

在对寄存器进行位的操作时,我们需要对某一位进行置为和清零操作,需要掌握一些常用的位运算技巧。

2024-07-19 16:32:24 162

原创 什么是寄存器

说明中的 ODRx 是另一个寄存器的寄存器位,我们只需要知道ODRx 位为 1 的时候,对应的引脚 x 输出高电平,为 0 的时候对应的引脚输出低电平即可 (感兴趣的读者可以查询该寄存器 GPIOx_ODR 的说明了解)。首先这个芯片上一块连续的内存,其中又分为了几个区间进行不同的操作功能,对于其中的某一个区间如block2,是来操作外设的,而外设又根据速度不同划分APB1,APB2,AHB几个部分,而在这块block区,内存也是连续的,不同的功能对应的内存不同,所以可以通过想对偏移,来找到绝对地址。

2024-07-19 16:12:08 1116

原创 认识STM32

认识STM32大纲认识STM32具体案例认识STM32STN32有什么STM32的分类和命名方法STM32的选择引脚的定义,分类和查询制作PCB

2024-07-16 21:20:46 195

原创 驱动文件讲解

驱动文件对于后续的学习非常重要,所以请各位友友耐心对完本章,保证能够加深理解。

2024-07-13 12:15:35 119

原创 数据结构习题--移除链表元素

数据结构习题–移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回新的头节点注意:被删除掉的结点可能是头结点,所以要实现对头结点的判断和更新方法:单指针遍历分析这其实就是在常见的删除操作上,增加了一个判断值是否相等于目标值,当然这里还要考虑到头结点的情况代码package LinkList;public class deleteNodeByValue { /** * Definition

2024-07-09 09:45:21 252

原创 数据结构学习--线性表

定义:具有相同特性的数据元素的一个有限序列Java语法int val;用一组物理位置任意的存储单元来存放线性表的数据元素这组存储单元位置是任意的,可以相邻,也可以不相邻(即逻辑次序和物理次序不同),访问元素是从第一个元素依次访问。顺序存取结点:数据元素的存储映像.由数据域和指针域两部分组成n个结点由指针链组成一个链表,它是线性表的链式存储映像,称为线性表的链式存储结构空表:有头节点,则头结点的指针域为空无头节点,则头指针指向空头结点的好处:便于首元结点的处理。

2024-07-09 09:44:49 246

原创 Tomcat

该资源是完全免费的,可以去官网进行下载,或者在博客里面搜索资源,Windows操作系统下载zip版本。可以使用netstat -anb(使用管理员权限在操作界面输入)查询已经在监听的端口。当hosts文件里面没有所访问的域名,就会去DNS。这里是hello.html文件,在src下面。

2024-07-08 10:06:09 269

原创 Http协议

请求头响应头。

2024-07-07 09:24:13 242

原创 servlet

可以干什么?代码实例:// 1.获取到ServletContext对象 ServletContext servletContext = getServletContext();// 2.获取信息 String author = servletContext . getInitParameter("author");

2024-07-07 09:23:49 726

原创 常用快捷键

常用快捷键目录Ctrl + Alt + b:查找子类或接口Ctrl + Alt + i : 在浏览器进入开发者模式

2024-06-01 09:22:47 84 1

原创 DOM学习

DOM全称是Document Object Model 文档对象模型,就是把文档中的标签,属性,文本,转换为对象来管理。

2024-05-27 14:46:48 833

原创 JS入门学习

首先,在JavaScript里面的数组的元素可以不是同一个类型< script > // 方式一:直接创建 var array1 = [ 100 , "第二个" , '第三个' ];// 方式二:先声明,再赋值 var array2 = [ ];array2 [ 1 ] = "第二个";array2 [ 2 ] = '第三个';// 方式三: var array3 = new Array(100 , "第二个" , '第三个');

2024-05-27 14:46:33 1012

原创 CSS学习

对于前端开发来说,把内容和样式分离,提高开发效率。

2024-05-15 23:52:16 918

原创 HTML学习

HTML是超文本标签语言,而HTML文本是由HTML标签组成的文本,可以包括文字,图形,动画 ,声音,表格,链接等HTML的结构包括头部(Head),主体(Body)两大部分一个html文件的大致组成如下。

2024-05-15 20:11:52 750

原创 Java Web开篇

这是前端和后端组成的系统的框架结构。

2024-05-13 14:21:29 204

原创 双向BFS算法学习

推荐练习题力扣“127”题:单词接龙“752”题:打开轮盘锁这里推荐一篇力扣题解这里使用打开轮盘锁的题干进行举例:你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。

2024-05-08 22:39:06 435

原创 数据结构习题--赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true;否则返回 false。magazine 中的每个字符只能在 ransomNote 中使用一次。

2024-05-05 22:15:21 314

原创 数据结构习题--返回链表中点

使用快慢指针,快指针fast,一次遍历两个位置,慢指针slow,一次遍历一个位置,当快指针为null,或者下一个为null,最后返回slow。

2024-05-04 22:16:22 228

原创 数据结构习题--Fizz Buzz

给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:answer[i] == “FizzBuzz” 如果 i 同时是 3 和 5 的倍数。answer[i] == “Fizz” 如果 i 是 3 的倍数。answer[i] == “Buzz” 如果 i 是 5 的倍数。answer[i] == i (以字符串形式)如果上述条件全不满足。

2024-05-04 21:43:28 217

原创 数据结构习题--旋转链表

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。注意这里的k可能超过链表的长度。

2024-04-28 11:00:50 146

原创 数据结构习题--删除链表倒数的第N个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

2024-04-26 20:44:43 248

原创 数据结构习题--复制带随机指针的链表

给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> Y。

2024-04-26 15:17:56 895

原创 数据结构--对角线遍历

在处理右上时,行减列增循环遍历对角线的条件:因为行减到0,或者列增到边界时,就不能再遍历,所以遍历条件是其补集边界判断:当达到边界上的最后一个数时,还要进行一次行减列增(因为循环变量迭代),此时我们需要判断列是否越界,如果没有,则把行加1(满足行列之和加1,开启下一条线的遍历),如果越界了,行加2,列减1(满足行列之和加1,开启下一条线的遍历),说明列达到边界,下一条对角线的起始遍历位置加了一行对于左下(行增列减),也是一样的分析方式// 得到行数// 得到列数//存放数组。

2024-04-24 18:59:14 280

原创 数据结构习题--回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true;否则,返回 false要求:时间复杂度为O(n)空间复杂度为O(1)

2024-04-24 14:59:58 242

原创 数据结构习题--反转链表

给你一个链表,请你反转该链表并返回该链表的头结点。

2024-04-21 22:57:19 171

原创 数据结构习题-- 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null如上图,返回c1结点注意:这两个链表非环形。

2024-04-20 08:49:31 561

原创 数据结构学习--环形链表

我们在判断一个链表是否是环形的,即首尾相连,我们可以以使用快慢指针,如果快指针能再次追上慢指针,就说明该链表是环形的,这边可以举个操场跑步的例子,当操场是环形的,跑的快的,就可以对跑的慢的实现套圈.

2024-04-18 15:09:43 742

原创 数据结构习题--杨辉三角形(返回某一行)

输入需要第几行,返回杨辉三角形中的这一行注意:这里的行数是从0开始。

2024-04-17 20:34:50 670

原创 数据结构习题--移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。

2024-04-16 08:39:56 372

原创 数据结构习题--移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

2024-04-15 09:03:31 416

原创 数据结构习题--数组拆分

给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。

2024-04-14 08:58:44 496

原创 数据结构--翻转字符串里的单词

给你一个字符串 ,请你反转字符串中的单词的顺序。单词是由非空格字符组成的字符串。且字符串中的单词至少间隔一个空格返回,单词顺序颠倒,且单词之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格(即无最前后的空格)。

2024-04-13 08:54:46 672

原创 数据结构--KMP算法

通俗来说,就是一个字符串开头到某一个位置与其某一个位置到字符串结束一模一样,即 P0…PK-1 与 Pi-k…Pi-1的字符串相同,注意我们这里的最长公共前后缀是指的真串,即不包含该字母,如对于字符串 aba,其前缀有 a,ab,其后缀有ba,a那么最长公共公共前后缀为a下面是实例:对于ababcabababe我们手动遍历一次从 i = 0开始i = 0,字符串为 a因为不包含本身,所以其无前后缀,那么自然也没有公共前后缀i = 1,字符串为 ab。

2024-04-10 20:31:12 936

原创 数据结构--最长回文串

输入一个字符串,返回其最长的回文串回文:正着和倒着是相同的字符串。

2024-04-07 11:28:48 1007

原创 数据结构--最长公共前缀

首先找到最小长度的字符串,然后把其与每一个与每一个字符串查找索引,判断其是不是第一个(索引为0),若其是,则计数的加一,当计数等于字符数组长度,即每个字符串都有,则返回该字符串,否则最短字符串减1位,再执行以上操作。

2024-04-05 20:42:17 592

对STM32驱动文件的详细讲解

对STM32驱动文件的详细讲解

2024-07-13

GET和POST的选择

GET和POST的选择

2024-06-05

Http协议-记录常见的状态码

可以通过状态码来知道浏览器服务的状态

2024-06-01

数据结构学习-队列/栈

简单的介绍了队列的实现原理,和一些开发中的考量

2024-04-28

数据结构-KMP算法原理

对KMP算法进行具体的分析,生动图解,保证能够一看就懂

2024-04-10

数据结构的KMP算法原理

详细的分析了对于KMP算法的Next[ ]数组的求解原理

2024-04-10

数据结构的逻辑结构图,描述逻辑结构关系

数据结构的逻辑结构图,描述逻辑结构关系

2024-03-26

Java的常用的正则表达式

收录了常见的文本正则表达式的模板,便于开发

2024-03-25

Java语法学习 正则表达式

Java语法学习 正则表达式

2024-03-25

MySQL安装指南,免费版本

MySQL安装指南,免费版本

2024-02-17

空空如也

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

TA关注的人

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