自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Joker的博客

小白成长之路

  • 博客(21)
  • 收藏
  • 关注

原创 MYSQL常用操作<linux>

一、登录\退出数据库使用root身份登录数据库mysql -u root -p输入密码出现mysql>即为登录成功输入quit;退出数据库;二、库操作1、新建库创建一个名为school的库create database school;2、查看库显示当前存在的库show databases;3、删除库删除school库drop database school;4、选择要操作的库选择操作school库;use school;三、表的操作1、常见数据类型

2020-11-22 18:33:02 215

原创 OLED屏幕应用实验

一、介绍OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(OrganicElectroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。二、实验材料OLED显示屏:驱动器型号:使用MCU控制OLED本质上是MCU与屏的驱动控制器进行通信,本项目中OLED的

2020-11-08 19:03:35 2433

原创 SPI通信笔记

一、SPI通信概述SPI,Serial Peripheral Interface,串行外设接口。1、总线构成:时钟线SCK(主机用于控制通信速度)数据线MOSI,MISO (M主机,S从机,O输出,I输入)片选线CS(主机用于选择参与通信的从机)2、通信特点: 同步、串行、全双工一般情况下,MCU与某个功能模块之间用SPI通信时,MCU作为主机。片选引脚CS,存在于从机上,当 CS引脚上检测到低电平(相对于从机),此时从机会参与接下来的SPI通信,若CS引脚上检测到高电平,则不参与通

2020-11-08 18:23:31 1385

原创 多进程实现

一、进程三种状态1.就绪状态(Ready)当进程已分配到除CPU以外的所有必须的资源,只要获得处理机便可以立即执行,这时的进程状态就被称为就绪状态。2. 执行状态(Running)当进程已获得CPU,其程序正在CPU上执行,此时的进程状态被称为执行态。3. 阻塞状态(Blocked)又称为等待、挂起状态。正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件有很多种,例如,等待I/O完成、申请缓存区不能满足、等待条件(信号)等。4. 状态转换处

2020-10-24 10:11:43 610

原创 基于STM32的FreeRTOS任务管理

一、FreeRTOS操作系统特点FreeRTOS是一款实时操作系统,可以设置任务的优先级。FreeRTOS用于MCU,占用iROM约4~9Kbyte,FreeRTOS支持裁剪功能(可裁剪性强)。FreeRTOS 与 ucos-II区别:在商用条件下,FreeRTOS免费开源,而ucos-II需要收费(非商用免费)。任务设计上更容易。在ucos-II中,每个任务的优先级互不相同;而在FreeRTOS中,任务的优先级的可以相同(对于相同优先级任务,采用时间片轮询方式调度)。ucos中表示任务优先级

2020-10-11 18:58:18 1139

原创 PID算法笔记

PID 是一个闭环控制算法。因此要实现 PID 算法,必须在硬件上具有闭环控制,就是得有反馈。比如控制一个电机的转速,就得有一个测量转速的传感器,并将结果反馈到控制路线上。以前对于闭环控制的一个最朴素的想法就只有 P 控制,将当前结果反馈回来,再与目标相减,为正的话,就减速,为负的话就加速。PID控制是一种广泛应用于工业控制中的一种控制方法,其中P 表示比例控制、I 表示积分控制 、 D表示微分控制。一般,根据实际模型,可能会分别采用P、PI、PD、PID控制。PID只能在闭环系统中使用。基本概念1

2020-10-10 23:36:17 3006

原创 UART串口通信

一、通信特点异步、串行、全双工一般描述某种通信的特点为: 同步/异步 , 串行/并行 , 半双工/全双工同步:要求一个芯片控制另一芯片的时序,一般,两者之间至少采用一个总线连接以控制时钟(“时钟线”), 其中主机主动控制时钟线(通过时钟线输出),从机被动接受时钟线(通过时钟线输入)。异步:双方不会通过总线连接时钟,异步通信要求双方使用独立的时钟生成装置(波特率发生器),生成相 同的通信速度。串行:在每个数据方向上仅有一根数据线。每次仅传输一位数据。 并行:在每个数据方向上有多根数据线。每次可

2020-09-20 18:54:10 24276

原创 <cctype>库的使用

头文件:#include <cctype>包含了一些实用的字符处理函数1.bool isalnum( char c )如果是字母或数字,则返回true;如果不是,则返回false。2.bool isalpha(char c)检查字符c是否是字母。如果是,则返回true;如果不是,则返回false。4.iscntrl()检查c是否是控制字符。控制字符是不占用显示器上打印位置的字符(这与可打印字符相反,用isprint检查)。对于标准ASCII字符集(由“C”语言环境使用),控制字符是

2020-09-20 15:33:52 253

原创 [Linux、C++]线程常用方法

一、概念先了解一下进程,进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。而线程通常叫做 “轻量级进程”,一个进程可以有多个线程,它和同进程中的其他线程共享进程空间(堆代码、数据、文件描述符、信号等),只拥有自己的栈空间,关系如下图示例。线程也主要呈现三种状态:运行态、阻塞态、就绪态。在同一个进程下,每个线程都有独立的ID,一般用tid表示。二、线程实现在c++11引入了一个多线程类std::thread,使用时需包含头文件<thread>1、创建

2020-09-07 18:08:15 472

原创 [Linux]C++sleep操作

①头文件包含 unistd.h②秒级延时sleep(1)③微妙级延时usleep(1000000)注:区分大小写

2020-09-07 11:30:46 659

原创 make工程管理

make工程管理一、概述实际项目开发中,源码文件数量都不会只有少数几个。如果一个由上百个文件的代码构成的项目在编译过一遍之后,若只对一个或少数几个文件进行了修改,再从头到尾将每一个文件都重新编译是个比较繁琐的过程。为此,引入了make工程管理器的概念,工程管理器指管理较多的文件,它是自动管理器能根据文件时间自动发现更新过的文件而减少编译的工作量(类比软件的编译功能),同时make也是一个命令(可执行程序),当使用make命令时,默认的操作对象是同路径下的名为Makefile的文件。同时通过读入Makef

2020-09-06 00:51:54 1514 1

原创 vector使用方法

目录一、vector概念二、使用方法1、头文件2、初始化3、读取元素4、插入、赋值元素一、vector概念vector是一种可存放任意类型(类型声明时指定)、自行扩展(加倍方式)、连续存储的容器,类似于可存放任意类型动态数组。二、使用方法1、头文件#include <vector>有时需要用到算法库#include <algorithm>2、初始化vector的元素类型不仅仅可以是int,double,string,还可以是结构体,但是要注意,结构体要定义为全局

2020-08-23 19:01:17 792

原创 C语言代码简化技巧(一)

先来看这段代码,函数功能返回非负整数n的阶乘,要求返回双精度。double fact( int n ){ double s=1; int i; if(n==0) { return 1; } else { for(i=1;i<=n;i++) { s=s*i; } } return s;}结果正确,但过程似乎太长,有没有不想看的感觉,那来

2020-08-22 00:51:58 2419

原创 git学习笔记

目录一、创建版本库提交文件... 2二、掌握库的状态查看修改... 3三、版本查看与回退... 4四、工作区和暂存区... 6五、修改、撤销、删除... 7六、远程仓库... 9七、分支... 12一、创建版本库提交文件进入一个文件夹,准备初始化版本库(已安装git)git init创建一个文件如:test.c提交test.cgit add test.c简单解释一下git commit命令,-m后面输入的是本次提交的说明...

2020-08-15 23:39:32 292

原创 动态规划算法

在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。基本思想问题的最优解如果可以由子问题的最优解推导得到,则可以先求解子问题的最优解,在构造原问题的最优解;若子问题有较多的重复出现,则可以自底向上从最终子问题向原问题逐步求解。使用条件通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,具有天然剪枝的功能,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同

2020-07-26 18:50:19 147

原创 C语言四种常用指针形式

1.数组指针本质:指针 形容:指向数组的指针//数组的操作:核心是针对元素的形式:数组的元素类型 *指针变量名;eg:char a[10];char *p;p = a;//指针指向数组的首元素 int b[2][5]; int (*w)[5];//指针,指向类型:int [5] //指向的数组元素类型应该是int [5] ---> 可以用来指向一个二维数组 w = b;//使用指针w指向二维数组b 二维数组指定元素的方式: ①a[i][j] ②*(a[i] +

2020-07-18 01:06:57 5271

原创 C++比C多了什么(二)

1.6 函数重载1.6.1 函数重载的概念一个函数名可以对应多个函数体(多个接口),--------->函数重载对功能相近的函数,写成函数重载1.6.2 函数重载的作用可以使一个函数在不同的条件下,执行不同的功能,提高了函数功能性避免为多个功能相近但是不同代码起名出现名称冲突1.6.3 构成函数重载的条件1)函数名相同2)函数的参数不同(参数的类型 ,参数的位置,参数的个数),参数名不是构成函数重载的条件3)函数的返回值不是构成函数重载的条件1.6.4 函数重载的执行原理在

2020-07-05 20:15:18 765

原创 C++比C多了什么(一)

C++新特性补充:C++提供控制输出数据的格式需要包含 iomanip.hdec 转换位十进制数输入/输出hex 转换位十六进制数输入/输出oct 转换为八进制数输入/输出setw(int) 设置输出的宽度(类似C中对齐方式)setprecision(int) 设置浮点数输出的有效数字位数setfill(char) 设置填充字符1 输入/输出流流是字符集合或数据流的源

2020-07-05 20:14:23 1305

原创 C语言杂项

全局变量和局部变量生存周期:从定义位置开始到该变量被释放作用域:变量的有效作用范围定义位置:函数体内 函数体外存储区域:静态区 栈区 堆区 代码常量区全局变量: 生存周期:从定义位置开始到文件结束 作用域:定义该变量的整个文件 定义位置:函数体外,经常定义在主函数的上方 存储区域:静态区 ---- 自动申请,自动释放局部变量: 生存周期:从定义位置开始到定义它的函数结束 作用域: 定义该变量的函数体内 定义位置:函数体内 存储区域:栈区 --- 变量先入后出 当全局变

2020-07-05 20:00:07 388

原创 C语言取整

使用floor函数。floor(x)返回的是小于或等于x的最大整数。如: floor(10.5) == 10 floor(-10.5) == -11使用ceil函数。ceil(x)返回的是大于x的最小整数。如: ceil(10.5) == 11 ceil(-10.5) ==-10floor()是向负无穷大舍入,floor(-10.5) == -11;ceil()是向正无穷大舍入,ceil(-10.5) == -10fix朝零方向取整,如fix(-1.3)=-1; f

2020-06-30 20:08:06 628

原创 数据结构基本术语

#1.已知三角形三边,判断三角形类型并求面积#include<stdio.h>#include<math.h>void main(void){ int a,b,c;//三边长 float s,p;//s存面积,p计算面积中间值 printf("请输入三条边长:"); scanf("%d%d%d",&a,&b,&c); if(a+b...

2020-01-07 14:50:07 527

空空如也

空空如也

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

TA关注的人

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