自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ARM开发初级-STM32时钟系统以及如何正确使用HAL_Delay-学习笔记08

概念:时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器意义:时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作,外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通常时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。首先,通过晶体振荡器产生一个时钟信号,然后跟着一个开关,不开这个时钟信号就没有办法传递出去。...

2022-08-03 05:45:06 1466 1

原创 ARM开发初级-STM32中断系统-学习笔记07

处理器中的中断在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去为处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS等。意义中断能提高CPU的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换中断处理过程。...

2022-08-01 19:59:00 589

原创 ARM开发初级-STM32F4 USART串口的应用-学习笔记06

USART通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。UART(UniversalAsynchronousReceiverandTransmitter),它是在USART基础上裁剪掉了同步通信功能,只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是UART。STM32的USART介绍上图可以分为三个部分,上面发送数据;中间是控制单元,控制波特率等;下面接收数据。......

2022-07-29 13:17:04 1034

原创 ARM开发初级-STM32的GPIO操作-学习笔记05

通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。上图(STM32F4x7-Datasheet的41页)片的GPIO被分成很多组,每组最多有16个引脚,如型号为STM32F407IGT6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOI共9组GPIO,芯片一共176个引脚。...

2022-07-23 20:07:45 699

原创 ARM开发初级-STM32F4启动流程与启动文件分析-学习笔记04

启动流程指复位或上电到执行到main中间,板子做的事情中断向量表是处理终端时函数的地址。中断向量表中的前1-4个字节是一个地址,指向一个栈空间;第5-8个字节是复位向量,它表示程序执行的起始位置。在板子一上电或者复位的时候,板子做的第一件事情是读取0x00000000-0x00000003,把读到的值指向MSP(主栈指针),然后读取0x00000004-0x00000007存放的复位向量,把读取到的值指向Reset_Handler。到这一步位置都是处理器自动完成,不需要写代码。......

2022-07-22 11:11:14 1571

原创 ARM开发初级-STM32F4寄存器-学习笔记03

1. STM32的系统架构1.1 八条主控总线1.2 七条被控总线1.3 高速总线1.4 高速外设与低速外设2. Cortex-M4存储空间3. 存储器映射3.1 Cortex-M4存储器映射3.2 STM32F407存储器映射3.3 访问寄存器4. 参考

2022-07-21 18:48:56 1593 1

原创 ARM开发初级-Windows环境下的STM32开发环境搭建(包含missing compiler version 5的解决方法)-学习笔记02

KeilMDK,也称MDK-ARM,RealviewMDK(MicrocontrollerDevelopmentKit)等。目前KeilMDK由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。直观的选择STM32微控制器微控制器图形化配置自动处理引脚冲突。...

2022-07-21 10:55:55 4510 2

原创 ARM开发初级-ARM、Cortex-M4与STM32背景知识(包含STM32产品命名规则)-学习笔记01

1. ARM背景知识1.1 ARM处理器家族1.2 ARM处理器架构1.3 ARM指令集1.4 SOC(片上系统)概念2. Cortex-M4处理器2.1 Cortex-M家族2.2 Cortex-M4特性2.3 Cortex-M结构框图2.4 Cortex-M4工作模式2.5 Cortex-M4寄存器组2.5.1 通用寄存器2.5.2 特殊寄存器2.6 Cortex-M4异常和中断2.7 Cortex-M4指令集3. STM323.1 STM32产品介绍3.2 STM32

2022-07-21 09:32:08 1583

原创 Python-对字典排序

dic = dict(zip(['a','b','c', 'd', 'e'], [12, 41, 2, 4, 23]))# 按key排序sorted(dic.items()) # [('a', 12), ('b', 41), ('c', 2), ('d', 4), ('e', 23)]sorted(dic.items(), reverse=True) # [('e', 23), ('d', 4), ('c', 2), ('b', 41), ('a', 12)]# 按value排序sor

2022-06-19 11:24:08 86

原创 Python-所有字符串函数总结

直接看文档是按顺序排列的有点乱,总结分类下,同时写一些备注,方便以后理解查阅

2022-06-18 18:29:33 351

原创 ffmpeg-图片制作高质量gif-亲测可用

首先为每一张图片生成一个调试板,然后根据调色板制作一个2fps的gif图片。Slide%d.png可以根据自己的图片更改

2022-06-16 09:23:42 890

原创 数据结构与算法(JAVA)-泛型、循环不变量和常用复杂度比较-学习笔记01

首先实现一下整型的线性查找但是我们不能够保证所有的调用这个方法的人都是用int,所以我们需要用泛型,使用泛型的时候不可以是基本数据类型,只能是类对象因此我们可以修改一下我们的代码成这样如果我们要调用自己的类,来做线性查找的话,下面是一个例子,我们覆盖了这个方法调用LinearSearch查找2. 循环不变量循环不变量主要用来帮助我们理解算法的正确性。关于循环不变量,我们必须证明三条性质:以线性查找为例循环体在整个过程中维护了循环不变量.........

2022-06-13 06:48:19 96

原创 算法(C语言)-快速排序-学习笔记08

# 1. 介绍* 复杂度:O(nlgn)* 通过一个基准值和两个指针来实现

2022-06-12 09:00:46 85

原创 算法(C语言)-hash查询-学习笔记07

直接寻址表,记为T[0...m−1]T[0...m-1]T[0...m−1], 其中每个位置称为槽(Slot),对应全域U的一个关键字(Key),key指向satellite data,若没有key为k的satellite data,则T[k]=NILT[k]=NILT[k]=NIL。O(1)O(1)O(1)O(1)O(1)O(1)O(1)O(1)O(1) 优点 将对象直接存放在表的槽中,从而节约空间 只需要知道下标就可以找到元素,不必存储关键字。然而不存

2022-06-12 04:11:22 256

原创 数据结构(C语言)-二叉树-学习笔记06

4.2 bitree_create()4.3 遍历可以通过递归来解决问题,之后都以下面这棵树举例,创建树时在终端输入

2022-06-11 03:34:04 132

原创 数据结构(C语言)-球钟问题(栈和队列)-学习笔记05

1. 球钟背景球钟是一个利用球的移动来记录时间的简单装置它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器若分钟指示器中有两个球,五分钟指示器有六个球,小时指示器有五个球,那就代表时间是5:322. 工作原理我们需要27个球放入一个队列需要三个栈,分别代表分钟指示器,五分钟指示器,小时指示器每过一分钟,球钟就会从球队列的队首取出一个球放入分钟指示器,分钟指示器最多可以容纳四个球放入第五个球的时候,分钟指示器清空,也就是把分钟指示器中的四个球按照被放入时的相反顺序加入到球队

2022-06-09 14:20:54 267

原创 数据结构(C语言)-线性表之队列(顺序队列、链式队列)-学习笔记04

先定义一个结点,在定义一个队列,队列的front指向头结点,队列的rear指向链表的最后一个元素2.2 创建队列2.3 入队2.4 出队把头结点的后一个元素当做头结点,在把原来的头结点free掉,这样就让front向后移了。.........

2022-06-09 11:48:25 112

原创 数据结构(C语言)-线性表之栈(顺序栈、链式栈)-学习笔记03

文章目录1. 基本介绍2. 基本用法2.1 定义:2.2 创建栈2.3 入栈2.4 出栈2.5 查看栈顶2.6 清空数据2.7 释放栈内存2.8 判断栈是否为空2.9 判断栈是否已满3. 链式栈3.1 创建栈3.2 入栈3.3 出栈3.4 查找栈顶3.5 查找栈底1. 基本介绍栈是限制在一端进行插入操作和删除操作的线性表允许进行操作的一端称为栈顶另一端固定端称为栈底当没有元素的时候称为空栈后进先出.........

2022-06-09 08:47:01 178

原创 数据结构(C语言)-线性表之单链表-学习笔记02

文章目录1. 基本介绍2. 基本用法3. 单链表实现3.1 创建结点3.2 在链表尾插入新的结点3.3 遍历打印3.4 链表查找3.5 插入3.6 删除链表中的某个结点3.7 删除链表中的所有结点4. 所有代码1. 基本介绍将线性表L=(a0,a1,⋯ ,an−1)L=(a_0, a_1,\cdots, a_{n-1})L=(a0​,a1​,⋯,an−1​)中各元素分布在存储器的不同存储块,称为结点,通过地址或指针建立元素之间的联系。每个结点有一个data和一个next指针,data存储数据元素ai

2022-06-01 02:18:13 222

原创 数据结构(C语言)-线性表之顺序表-学习笔记01

文章目录1. 线性表1.1 基本介绍1.2 基本用法1.3 线性表L的基本运算1. 线性表1.1 基本介绍包含若干数据元素的一个线性序列,记L=(a0,⋯ ,ai,⋯ ,an−1)L=(a_0, \cdots, a_i, \cdots, a_{n-1}) L=(a0​,⋯,ai​,⋯,an−1​)L是表名,n是表长,若n=0则为空表线性表L可用二元组形式描述,用数据元素集合D和关系集合R来表示L=(D,R)D={ai∣ai∈datatype,i=0,1,2,⋯ ,n−1}R={<a

2022-05-29 21:29:14 131

原创 C语言-Makefile-学习笔记12

文章目录1. Make简介2. Makefile基本结构3. 创建和使用变量4. Make使用5. Makefile的VPATH6. Makefile综合实战1. Make简介工程管理器,顾名思义,是指管理较多的文件Make工程管理器也就是个“自动编译管理器”,这里的“自动”是指他能根据文件时间戳自动发现更新过的文件而减少编译工作量,同时,他通过读入Makefile文件的内容来执行大量的编译工作Make将只编译改动的代码,而不是完全编译2. Makefile基本结构Makefile是Mak

2022-05-26 20:23:11 237

原创 C语言-结构体、共用体、typedef关键字与动态内存管理-学习笔记11

文章目录1. 结构体1.1 基本用法1.2 结构体大小1.3 结构体数组1.4 结构体指针2. 共用体3. typedef关键字4. 内存管理4.1 基本介绍4.2 动态管理(malloc, free)1. 结构体1.1 基本用法用法#include <stdio.h>struct 结构体名{ int 属性1; char 属性2; ...}[变量名2 = {1, "2"}, 变量名3, ...]; //这里是第一种实例化的方法,不用的时候;不能省略int main(i

2022-05-26 13:12:06 101

原创 C语言-指针函数、函数指针和递归函数-学习笔记10

1. 指针函数用法:数据类型 *函数名称(参数){ pass;}指针函数是指函数的返回值为地址量的函数返回值:全局变量的地址、static变量的地址、字符串常量的地址、堆的地址举个错误的例子,会报错function returns address of local variable#include <stdio.h>#include <string.h>char *getstring();int main(int argc, char *argv[

2022-05-22 22:14:23 131

原创 MySQL与Python交互-基础操作-学习笔记01

文章目录1. 下载MySQL-Connector模块2. 创建和关闭连接3. 游标(Cursor)4. 避免SQL注入攻击5. 事务控制与异常处理6. 数据库连接池技术7. 循环执行SQL语句8. MySQL Connect的综合使用1. 下载MySQL-Connector模块是MySQL官方的驱动模块,兼容性好下载官方地址:https://dev.mysql.com/downloads/connector/python/anaconda下载:https://anaconda.org/anac

2022-05-22 16:49:52 188

原创 MySQL-新闻管理系统实战、AES加密调用-学习笔记10

文章目录1. 介绍2. 创建逻辑库和数据表2.1 介绍2.2 数据加密2.3 创建数据表2. 数据的导出与导入2.1 SQL文件的导出与导入2.2 TXT文档的导出与导入3. 综合案例:设计数据表1. 介绍数据库属于操作持久层的那一部分,包括MySQL、Redis、MongoDB等。在所有的项目中都是离不开数据库的。以编辑的身份简介系统首先需要账户密码才能登录编辑或审批账户。一旦登录会询问你需要做什么操作新闻列表:新闻比较多需要用LIMIT语句分页查询新建新闻:定义新闻标题、内容、是否置

2022-05-22 08:16:54 135

原创 JAVA-面向对象-学习笔记08

1. 对象类是摸子,确定对象将会拥有的特征(属性)和行为(方法)对象是类的实例表现类是对象的类型对象是特定类型的数据属性:对象具有的静态特征系统会默认给其初始化赋值,直接调用不报错,比如int变量会赋0,String给null方法:对象具有的动态行为方法中定义的值不会初始化赋值,直接调用会报错单一职责原则:一个类只有一个功能,只干一件事举个例子cat.javapackage com.animal;/** * cat * @a

2022-05-21 17:48:01 88

原创 C语言-函数-学习笔记09

文章目录1. 调用函数2. 函数的说明2. 传参2.1 全局变量2.2 赋值传递2.3 地址传递2.4 数组传参1. 调用函数数据类型 函数名称 (参数){ pass; return (表达式)}函数得写在main之前,先说明在调用例1,求xnx^nxn#include <stdio.h>#include <string.h>double power(double x, int n){ double res=x; for (int i=0; i<

2022-05-21 10:46:15 122

原创 MySQL-数字函数、字符函数、日期函数和条件函数-学习笔记09

文章目录1. 数字函数2. 字符函数3. 日期函数4. 条件函数1. 数字函数序号函数功能用例(SELECT 函数;能返回结果)1ABS绝对值ABS(-100)2ROUND四舍五入ROUND(4.1)3FLOOR向下取整FLOOR(4.1)4CEIL向上取整CEIL(4.1)5POWER幂函数POWER(2, 3), 是232^3236LOG对数函数LOG(7, 3),是log73log_7^3log73​7

2022-05-20 15:10:20 102

原创 JAVA-数组移位和统计-学习笔记07

package aaa.bbb.datamanage;import java.util.Scanner;/** * c从键盘接收整型数据存放到数组中,并对数组中的数据进行管理 * @author haiyue * */public class DataManage { /** * 从键盘接收数据 * @return 接收数据的数组 */ public int[] insertData() { int[] a = new int[5]; Scanner sc = new

2022-05-20 09:29:55 90

原创 删除不需要的内核-系统问题01

(python3) haiyue@HP-Pavilion:~$ dpkg -l | grep linux-image-rc linux-image-5.11.0-27-generic 5.11.0-27.29~20.04.1 amd64 Signed kernel image generichi linux-image-5.11.0-46-generic

2022-05-19 06:52:18 566

原创 MySQL-数据的导出与导入-学习笔记08

1. 数据导出与数据备份的区别数据导出,导出的是业务数据数据备份,备份的是数据文件,日志文件,索引文件等等全量备份:最占空间增量备份:只备份变动过的文件2. 数据导出的分类SQL文档:数据少时用这个文本文档:数据多时用这个2.1 导出SQL文件用法:mysqldump -uroot -p [no-data] 逻辑库>路径写no data只导出表结构不写no data既包含表结构又包含数据,全部导出到SQL文件mysqldump -uroot -p dem

2022-05-18 19:37:19 142

原创 MySQL-事物机制(Transaction)-学习笔记07

文章目录1. 基本介绍2. ACID属性3. 基本使用方法4. 隔离级别4.1 读取未提取数据:READ UNCOMMITTED4.2 读取已提交数据:READ COMMITTED4.3 重复读取:REPEATABLE READ4.4 序列化:SERILIZABLE1. 基本介绍平时在修改文件的时候,我们会在备份中修改文件。在数据库中也是这样,如果数据写入直接操作数据文件是非常危险的MySQL中总共有5种日志文件,其中redo日志和undo日志与事物有关如果我们要对数据库进行操作,我们会首先将My

2022-05-18 15:58:21 74

原创 JAVA-方法(重载)、数组、可变参数的传参与异常处理-学习笔记06

文章目录1. 什么是方法2. 方法的声明与调用3. 方法的分类3.1 无参无返回值方法3.2 无参有返回值方法3.3 有参无返回值方法3.4 有参有返回值方法4. 方法重载5. 特殊参数与传参5.1 数组作为方法参数5.2 基本数据类型的传参与数组的传参5.3 可变参数列表1. 什么是方法举例来说,Scanner是类,sc是对象,nextInt()是方法Scanner sc = new Scanner(System.in);sc.nextInt();sc.next();主方法也是特殊的

2022-05-18 10:58:23 272

原创 C语言-指针-基础用法、运算、指针与数组、指针数组、多级指针、void指针和const修饰符-学习笔记08

文章目录1. 地址和变量2. 指针2.1 基本声明2.2 指针的目标3. 指针的运算3.1 指针的赋值运算3.2 指针的算术运算3.2.1 指针与常量的加法与减法3.2.2 两指针相减运算3.3 指针的关系运算4. 指针与数组4.1 一维数组4.2 二维数组4.3 行指针1. 地址和变量指针的作用让程序简介、紧凑、高效、有效地表示复杂的数据结构动态分配内存得到多于一个的函数返回值地址:在计算机内存中,以字节为单元,每个字节都有一个编号,称为地址如果我们定义int i,然后用&

2022-05-17 18:02:39 186

原创 MySQL-MySQL的添加、修改和删除-学习笔记06

文章目录1. 数据添加(INSERT, IGNORE)1.1 INSERT语句1.2 MySQL的INSERT的方言用法1.3 IGNORE关键字2. 数据修改(UPDATE)2.1 基本用法2.2 UPDATE的内表连接2.2 UPDATE的外表连接执行顺序3. 数据删除 DELETE3.1 基础用法3.2 内表连接3.2 外表连接3.3 快速删除数据表的全部记录执行顺序1. 数据添加(INSERT, IGNORE)推荐用法:INSERT [IGNORE] 表名 SET 字段1=值1, 字段2=值2,

2022-05-17 10:31:42 317

原创 Java-数组-学习笔记05

目录1. 一维数组1.1 声明1.2 创建1.3 初始化1.4 元素的引用1.5 长度1.6 举例2. 二维数组3. 增强型for循环1. 一维数组通过下面这张照片我们看到数组是在引用数据类型下1.1 声明//1. 第一种方式type[] array_name; //int[] array;//2. 第二种方式type array_name[]; //int array[]1.2 创建//1. 第一种方式type[] array; array = new type[lengt

2022-05-15 17:11:39 187

原创 C语言-字符和字符串专题-输入输出、字符(串)数组和字符(串)函数和字符指针-学习笔记07

文章目录1. 字符串输入与输出1.1 字符串的输入函数(gets)1.2 字符串的输出函数(puts)2. 字符数组3. 字符串数组4. 常用字符串函数4.1 求字符串长度(strlen)4.2 字符串拷贝(strcpy)4.3 字符串连接(strcat)4.4 字符串比较(strcmp)4.5 字符串与字符函数的扩展用法1. 字符串输入与输出1.1 字符串的输入函数(gets)char * gets(char *s)字符串的最后个字符是\0,要注意数据长度gets函数不会让空格成为字符串的结束

2022-05-15 15:17:36 656

原创 C语言-数组-学习笔记06

文章目录1. 数组1.1 一维数组1.2 二维数组2. 字符数组和字符串2.1 字符数组2.2 字符数组2.3 常用字符串函数2.3.1 求字符串长度(strlen)2.3.2 字符串拷贝(strcpy)2.3.3 字符串连接(strcat)2.3.4 字符串比较(strcmp)2.3.5 字符串与字符函数的扩展用法1. 数组构造数据类型之一1.1 一维数组用法:<存储类型> <数据类型> <数组名> [<表达式>],比如int a[6]数组的

2022-05-15 15:16:16 301

原创 MySQL-数据库的高级查询-聚合函数、分组查询、多表连接、UNION关键字和子查询-学习笔记06

文章目录0. 语法总结1. 数据统计分析1.1 聚合函数(AVG,SUM等)1.2 一个容易犯错的地方:聚合函数不能出现在WHERE中1.2 分组查询以及对SELECT子句的要求1.2.1 基础用法(GROUP BY)1.2.2 按照数字进行分组1.2.2 逐级分组1.2.3 对SELECT子句的要求1.2.4 对分组统计的结果再次做汇总运算(GROUP BY * WITH ROLLUP)1.2.5 GROUP_CONCAT函数1.3 HAVING子句2. 多表连接查询2.1 内连接2.2 外连接以及UNI

2022-05-14 17:18:59 553

原创 C语言-条件与循环-学习笔记05

目录1. 条件1.1 if-else1.2 switch1.3 条件运算符 (? :)2. 循环2.1 for2.2 while2.3 do-while2.4 goto3. 辅助控制3.1 continue3.2 break3.3 return1. 条件1.1 if-elseif (condi){ pass;}else if (condi) { pass;}else{ pass;}1.2 switchvartValue是常量表达式,可以是整型、字符型或枚举,不能是float,d

2022-05-13 09:57:44 256

空空如也

空空如也

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

TA关注的人

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