- 博客(27)
- 收藏
- 关注
原创 stm32cube入门4
1.中断优先级 (1).优先级数值越低代表优先级越高 (2).RESET,HARDFAULT和NHI优先级不可配,其他的都可以 (3).没有配置中断优先级时,优先级默认为0 (4).可配置中断优先级数值范围是0~255 (5).多个中断同时产生时优先级高的先处理 (6).多个中断同时产生且优先级相同的则中断序号小的先处理 (7).低优先级中断处理可以被高优先级中断抢占 2.配置 ...
2020-08-16 15:53:20
227
原创 Stm32cube入门2
1.按键的原理图 按键按下连接的是VCC那么是上拉输入 按键按下连接的是GND那么是上拉输入 1.输入模式,通过检测低电平判断按键按下 2.中断模式,通过检测下降沿判断按键按下 3.休眠模式,通过按键按下唤醒MCU ...
2020-08-11 10:50:49
275
原创 stm32cube入门1
1.新建工程 选择芯片(这里用的是STM32F103ZETT6) 双击 设置 时钟配置 外部晶振是8M,STM32F103ZET6的最高主频是72M 根据数据手册修改 2.连接原理图 3.IO口设置 1.选择模式 PB5同理 2.设置标签名 PE5同理 4.配置外设 1.推挽输出使我们常用的 2.开漏输出是我们需要驱动能力比较大的(需要一个上拉电阻) 生成代码 没有安装固件包会出现如下情况 ...
2020-08-08 14:10:17
327
原创 Typora简单例子
下载网址 https://www.typora.io/ 1.流程图 ”graph TB”指定流程图的生长方向,TB 表示 TOP->BOTTOM 由 上至下。”()”表示过程,”{}”表示判断 LR从左到右 2.交互 同上选择代码段
2020-08-07 09:37:33
770
原创 QT入门2
1.QT中文输入支持 root用户 yum install ibus -qt reboot 2.Unicode和UTF-8 作者:uuspider 链接:https://www.zhihu.com/question/23374078/answer/65352538 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 举一个例子:It’s 知乎日报 你看到的unicode字符集是这样的编码表: I 0049 t 0074 ’ 0027 s 0073 0020 知 77e5 乎
2020-07-28 10:55:31
285
原创 QT入门1
1.新建项目 继续点Next 2.设置一个开关 #include "mainwindow.h" #include "ui_mainwindow.h" #include "QPushButton" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QPushButton* btn=new QPushBut
2020-07-27 10:01:00
215
原创 mysql的封装(linux)
1.设置 Properties 常用API MYSQL* mysql_real_connect(MYSQL* mysql, const char* host, const char* user, const char* passwd, const char* db, unsigned int port, const char* unix_socket, unsigned long client_flag); unix_socket是一个socket的名字,如果你已经创建好,mysql可以使用它,如果传N
2020-07-26 13:33:20
194
原创 mysql的常用语句(基本)
1.管理MySQL的命令 (1).use 切换数据库 use <数据库名> (2).show databases 列出MySQL数据库管理系统的数据库列表 show databases; (3).show tables show tables; 显示指定数据库的所有表,使用该命令前需要使用use命令来选择要操作的数据库。 2.登录MySQL (1).使用命令行登陆的方法 mysql -u 用户名 [-h主机名或ip地址] -p密码 3.建库建表 (1).创建数据库 CREATE DATA
2020-07-24 17:33:13
354
原创 7.9 c++
1.remove remove(first, last, val); //删除first到last之间所有值为val的元素 remove只是通过迭代器的指针向后移动来删除,将没有被删除的元素放在链表的前面,并返回一个指向新的位置的迭代器。由于remove()函数不是vector成员函数,因此不能调整vector容器的长度。(对vector来说)remove()函数并不是真正的删除,要想真正删除元素则可以使用erase()或者resize()函数。 #include <iostream> #inc
2020-07-22 18:04:49
183
原创 7.7 c++
1.标准模板库STL vector(动态数组) vector中的元素在内存中是连续存储的。vector的实现是由一个动态数组构成。当空间不够的时候, 采用类似于C语言的realloc函数重新分配空间. 正是因为vector中的元素是连续存储的, 所以vector支持常数时间内完成元素的随机访问。 vector支持[]和at()遍历元素,由于结构上是数组,所以头插效果很低。~vector();释放空间。 实例 #include<iostream> #include<vector> #i
2020-07-19 10:27:21
209
原创 7.3 c++
1.异常处理异常: c++的异常处理机制使得异常的引发和处理不必在同一函数中,这样底层的函数可以着重解决具体问题,而不必过多地考虑对异常的处理。上层调用者可以在适当的位置设计对不同类型异常的统一处理。 ####语法 如果某段程序发现了自己不能或不想处理的异常,就可以使用throw表达抛出这个异常,将它抛给调用者。throw的操作数表示异常类型,语法上与return语句的操作数类似。如果程序中有多种要抛出的异常,应该用不同的操作数类型来互相区别。 try子句后的复合语句是受保护的代码段。如果预料某段程序代码
2020-07-13 13:58:57
222
原创 7.2 c++
1.多态 多态是指同样的消息被不同类型的对象接收时,导致不同的行为。所谓消息是指对对象成员函数的调用,不同的行为指不同的函数实现。比如+号运算符,可以用于多种类型数据的相加操作,同样是+号运算符,对于不同的对象,发生的行为也不同。如果不同类型的变量相加,例如浮点型和整型,则要先将整型转为浮点型,然后再进行加法运算,这就是典型的多态现象。 在基类中给相关函数加virtual关键字是实现动态绑定的基础 #include<iostream> #include<cstdio> using n
2020-07-12 15:26:11
197
原创 6.28 c++
1.友元函数 一个类是不能访问另一个类的私成成员的。友元关系提供了不同类或对象的成员函数之间,类的成员函数与一般函数之间进行数据共享的机制。 通俗的说:友元关系就是一个类主动声明哪些类或函数是它的朋友,进而给它们提供对本类的访问特许 在一个类中,可以利用关键字friend将其它函数或类声明为友元。如果友元是一般函数或类的成员函数,称为友元函数;如果友元是一个类,则称为友元类,友元类的所有成员函数都自动成为友元函数。 #include<iostream> #include <cmath>
2020-07-11 15:43:49
195
原创 6.21 c++
1深复制和浅复制 在使用一个对象对另一个对象初始化或赋值时,复制构造函数能对对象的属性进行复制。但如果存在指针成员,则指针的值会被复制,导致两个对象的指针成员指向同一块内存,在释放的时候对象的时候,会重复释放,导致程序崩溃。若对象包含指针成员变量,则需要手动的编写拷贝构造函数实现深拷贝,调用编译器的内部默认的拷贝构造函数则只能实现浅拷贝操作。 深拷贝: #include<iostream> #include<cstdio> #include<cstring> using
2020-07-09 20:56:23
186
原创 6.14 c++
1.类的实现一般有2种,一种在类定义时完成对成员函数的定义,一种是在类外进行定义。 类外实现 函数类型+类名::函数名 代码短就定义在类内,类内默认为inline函数(内联函数) 2.类的成员 如果在类的定义中既不指定private,也不指定public,则系统就默认为是私有的。 被声明为私有的(private)成员,只能被本类中的成员函数引用,类外不能调用(友元类除外)。 被声明为公用的(public)成员,既可以被本类中的成员函数所引用,也可以被类的作用域内的其他函数引用。 用protected声明的
2020-07-08 23:39:33
278
原创 6.13 c++
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-07-08 08:03:11
129
原创 队列(关于实现)
队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 一.链表的实现(链表相关知识在之前写过) #include<stdio.h> #include<string.h> typedef struct{ int...
2020-02-29 08:24:36
225
1
原创 用链表实现栈操作
#include <stdio.h> typedef struct { int dat; struct Node * prev; //point to the previous node struct Node * next; //point to the next node } Node; Node * head = NULL, *tail = NULL; int len = 0; ...
2020-02-28 18:31:04
156
原创 用数组模拟栈操作
#include<stdio.h>#define STACK_SIZE 10int stack[STACK_SIZE]; int stacklen=0;void push(int dat){ if(stacklen==STACK_SIZE){ printf("stack is overflow\n"); return; } stack[stacklen++]=dat...
2020-02-28 17:01:39
298
原创 双向链表
双向链表 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 1.定义 ...
2020-02-28 15:39:02
167
原创 单链表
单链表 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 1.定义 include<stdio.h> typedef struct{ char data;//结点中的数据 struct ...
2020-02-14 22:21:55
215
原创 指针
1. 指针(把地址赋给一个变量,这个变量就是指针) 是一种变量,里面存储的内容是地址,指向的其他变量的地址,定义的类型可以不一样可以 (int 4个字节) (char1个字节) 地址长度是一致的都是8个字节 **p :二级指针,表示p所指向的地址里面存放的是一个指向类型的指针。 *p:一级指针,表示p所指向的地址里面存放的是一个类型的值。 (1) 在函数中定义变量的时候顺序从上往下,但内存是从高到...
2020-02-12 18:21:33
193
原创 LINUX系统的常用命令(下)
LINUX系统的常用命令 1. vi命令 嵌入式文本编辑器 vi+文件名 进入编辑器 (可相对路径或者绝对路径) 不会报错,会创建一个新的文件 输入 i 进入编辑模式 Ese 进入命令模式 :进入 底行模式(在命令模式中) :w filename 将编辑器的内容以指定文件filename保存 :wq 存盘并保存vi :q! 不存盘强制退出vi swap file遗失文件 在命令行模式下 x 每...
2020-01-25 22:31:37
132
原创 LINUX系统的常用命令(上)
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。 [1] Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、
2020-01-24 16:57:23
365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅