- 博客(55)
- 问答 (1)
- 收藏
- 关注
原创 Window和Ubuntu下——VScode安装
Windows 与 ubuntu linux 下 Vscode安装教程Vscode官方网站:[Vscode官网](https://code.visualstudio.com/)一、Windows系统安装VsCode(1)下载安装包(2)点击安装,一直next即可(3)需要安装对应的插件,方便使用二、ubuntu Linux环境下安装(1)下载安装包(2)移动到ubuntu下(3)打开FileZilla(4)安装Vscode(5)设置快捷方式三、插件和解决问题Vscode官方网站:Vscode官网一、Wi
2021-08-02 16:48:32 819 1
原创 Linux IPC对象——共享内存
IPC对象学习——共享内存(1)描述(2)特点(3)共享内存使用步奏1.shmget函数创建共享内存2.shmat 映射3.shmdt 撤销映射4.shmctl 删除共享内存对象(1)描述(1)IPC对象包括: 共享内存、消息队列、信号灯集(2)每个IPC对象都有唯一的ID值——key(3)IPC对象创建后,直到进程结束,系统会默认释放(在服务器上可能不行),当然人为撤销最好(4)每个 IPC 对象都有对应的 key值 ,当key为 0 时,表示为 私有的共享内存,否则key 和 ID 对应相同
2021-06-08 20:53:02 534 1
原创 安卓初学——界面按钮响应
安卓学习——采用onClickListener监听器,界面按钮响应(一)定义监听,绑定组件(二)通过匿名内部类,把组件和事件绑定(三)采用view 对象调用onClick(四)在当前Activity实现监听接口(一)定义监听,绑定组件自定义一个类,用来筛选监听的指令class MyClickedHandle implements View.OnClickListener{ public void onClick(View v) { switch(v.getId()) {
2021-05-19 20:28:57 436 2
原创 Linux学习——动态库的创建
Linux——创建动态库一.动态库特点:二.生成动态库(共享库)(1)生成目标文件 .o(2)创建共享库,以command为例(3)给共享库创建链接(4)编译测试(5)让系统找到库的方法1.方法二:2.方法三:一.动态库特点:二.生成动态库(共享库)例子文件:test.c:#include <stdio.h>#include "mydemo.h"int main(){ printf("Test begin : \n"); hello();
2021-03-28 21:45:51 822 2
原创 Linux学习——静态库制作
Linux——静态库制作一.静态库的特点:二.静态库制作格式和指令:三.简单制作静态库——Demo(1)目标封装函数(2)调用测试文件(3)将函数文件生成 .o 文件(4)编译生成静态库(5)编译测试(6)缺点一.静态库的特点:二.静态库制作格式和指令:ar crs libhello.c helloar crs lib + 文件名 + .a 文件名.o注意:格式一定是 以 lib开头 ,最后 .a 结尾,中间夹带的名字由自己取 ,最后使用函数文件 .o 生成静态库查看库里头封装的函
2021-03-28 12:00:29 439
原创 Linux——Makefile学习
Linux——MakeFile学习及Demo一.简单概念(1)Makefile:(2)结构:二.Demo一.简单概念(1)Makefile:(2)结构:target(目标): File(文件名)<TAB键> + command(命令)二.Demo
2021-03-26 23:06:35 262
原创 Shell脚本——函数语法学习
Shell脚本——函数语法一、函数形态二.函数的调用(1)形式一Demo: (去/etc/passwd 下 查询命令)(2)形式二Demo: (去/etc/passwd 下 查询命令)三.全局变量和局部变量一、函数形态在shell脚本函数中,函数的位置可以比较自由,但是函数的名字必须是连贯的字符串,也就是不能中间用空格隔开shell脚本中是没有数据的类型的,所以函数也是没有具体类型grep_fun(){ .......}二.函数的调用(1)形式一如函数grep_fun()
2021-03-16 15:31:08 348
原创 Shell脚本学习——基础语法阶段二
Shell脚本学习——基础语法阶段二一.条件语句(如C语言中的 if else)二.选择语句 case三.循环语句 for 和 while(1)while循环(2)for循环一.条件语句(如C语言中的 if else)在 Shell脚本中 if else嵌套的原理和C语言相似if [ 条件 ] then elsefi #一个if结尾不能少了fiDemo:#!/bin/bashecho "Please Input you Data"read dataif [ $data
2021-03-16 15:05:25 180
原创 Shell脚本学习——基本语法阶段一
Shell脚本学习——基本语法阶段一一.输入read(1)demo1(2)demo2二.在 bash 和 sh 中不换行的区别三.基本运算方法(和C语言基本差不多)四.test语句(1)测试操作符如:(2)测试字符串:(3)测试整数在 Shell 脚本中没有数据类型,所以赋值一个变量是,无论输入多少都会看作是一个字符串数据一.输入read(1)demo1在 Shell 中 只读一个数时,无论输入多少个数,在 Shell脚本中都会看作是 一整串字符串#!/bin/bashecho "Inp
2021-03-13 21:08:51 286
原创 Ubantu——Linux文件解压和压缩
Linux文件压缩和解压指令一.gzip和gunzip二.tar命令三.tar解压和查看一.gzip和gunzip例如:二.tar命令使用区别如下:三.tar解压和查看tar -xvf 加上要解压的文件名字
2021-03-13 11:03:34 213
原创 Ubantu下Linux动态IP和静态IP配置方法
Ubantu——Linux动态Ip和静态Ip配置方法一.动态Ip配置二.网络配置文件(1)进入网络配置文件(2)静态Ip和动态Ip的修改(3)修改inerfaces文件后需要进入DNS文件添加域名Ip三.重启网络,让其配置生效四.使用nslookup看使用DNS 的Ip地址查看网络命令:ifconfig一.动态Ip配置动态IP作用过程:二.网络配置文件(1)进入网络配置文件(2)静态Ip和动态Ip的修改(3)修改inerfaces文件后需要进入DNS文件添加域名Ip添加
2021-03-13 10:51:36 252
原创 数据结构——无向图创建邻接表以及深度遍历、广度遍历(C语言版)
数据结构——无向图创建邻接表以及深度遍历、广度遍历一、邻接表概念二、创建邻接表一、邻接表概念在无向图中,顶点存储在顶点表中,以一个顶点为标记,指向边链表,两者组合在一起,称为 邻接表对无向图的每个顶点vi建立一个单链表,第i个单链表中的结点表示依附于顶点vi的边(对于有向图则是以顶点vi为尾的弧)。这个单链表就称为顶点vi的边表(对于有向图则称为出边表)边表的头指针和顶点的数据信息采用顺序存储(称为顶点表)邻接表中存在两种结点:顶点表结点和边表结点顶点表结点由顶点域(data)和指向第一条
2020-12-22 20:55:12 14496 8
原创 数据结构—无向图创建邻接矩阵、深度优先遍历和广度优先遍历(C语言版)
无向图创建邻接矩阵、深度优先遍历和广度优先遍历一、概念解析:(1)无向图:(2)邻接矩阵:二、创建邻接矩阵:三、深度遍历、广度遍历(1)深度遍历概念:(2)广度遍历概念:四、实例展示一、概念解析:(1)无向图:假设图G由两个集合V和E组成,记为G={V , E}。其中V是顶点的有限集合,E是连接V中两个不同顶点的边的有限集合。如果E中的顶点对是有序的,即E中的每条边都是有方向的,则称G是有向图。如果顶点对是无序的,则称G是无向图(2)邻接矩阵:邻接矩阵主要由:二维数组 实现如图转
2020-12-19 17:25:49 49053 8
原创 数据结构——计算节点个数和二叉树高度(C语言版)
数据结构——计算节点个数、二叉树高度一、计算各种节点(1)计算总节点:(2)计算单分支节点:(3)计算双分支节点:二、计算二叉树高度代码实现:一、计算各种节点二叉树结构体如下:// 二叉树结构体 typedef struct TreeLink{ int Data; struct TreeLink *LChild; struct TreeLink *RChild;}T_LINK,*TLINK; (1)计算总节点:让根节点指针开始,进行二叉树的遍历,遍历树节点中不为NULL下,及存
2020-12-12 23:27:09 4613 3
原创 数据结构——二叉树根节点到特定节点路径(C语言版)
二叉树——根节点到特定节点路径查找一、思路二、代码实现一、思路使用二叉链表创建的二叉树,这里我的思路是用链栈来存放找寻二叉树特定节点中,用来存放节点元素个人思路:创建链栈,遍历二叉树并把路径中节点元素存放到栈中(如下图所示):L 为一开始创建的链栈头指针flag = 1,作为标记符,表示还没在一条路径中,找到要找的特定节点元素二、代码实现思路理解不了,可以结合运行结果图,加上自己画图理解,运行结果在最下方#include<stdio.h>#include<s
2020-12-10 21:09:43 7454 10
原创 数据结构——二叉树先序、中序、后序及层次四种遍历(C语言版)
数据结构——二叉树先序、中序、后序三种遍历二叉树先序、中序、后序三种遍历三、代码展示:二叉树先序、中序、后序三种遍历先序遍历:3 2 2 3 8 6 5 4中序遍历:2 2 3 3 4 5 6 8后序遍历: 2 3 2 4 5 6 8 3三种遍历不同之处在,输出数据放在不同之处三、代码展示:#include<stdio.h>#include<stdlib.h>typedef struct Tree{ int
2020-12-09 17:08:48 364102 453
原创 数据结构——二叉链表创建二叉树(C语言版)
数据结构——二叉链表创建二叉树一、思想(先序思想创建):二、创建二叉树(1)传一级参数方法一、思想(先序思想创建):第一步先创建根节点,然后创建根节点左子树,开始递归创建左子树,直到递归创建到的节点下不继续创建左子树,也就是当下递归到的节点下的左子树指向NULL,结束本次左子树递归,返回这个节点的上一个节点,开始创建右子树,然后又开始以当下这个节点,继续递归创建左子树,左子树递归创建完,就递归创建右子树,直到递归结束返回到上一级指针节点(也就是根节点下),此时根节点左边子树创建完毕,开始创建右边子树,
2020-12-08 15:36:21 63280 15
原创 数据结构学习——链表(C语言版)
数据结构学习——链表的简单解析一、何为链表(1)概念:(2)特点:二、链表的简单实现(1)头插法:(2)尾插法(3)模拟学生管理系统:一、何为链表(1)概念:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(
2020-11-29 17:08:08 1090
原创 数据结构学习——顺序栈和链式栈的简单实现和解析(C语言版)
数据结构——栈的简单解析和实现一、概念二、入栈(push)三、出栈(pop)四、顺序栈简单实现(1)进栈操作(2)出栈操作一、概念本篇所讲解的栈和队列属于逻辑结构上的划分。逻辑结构分为线性结构、非线性结构线性结构:有且仅有一个开始节点和一个终端节点,每个节点最多只有一个直接前驱和一个直接后继。代表结构:栈、队列非线性结构:一个节点可能有多个直接前驱和多个直接后继。代表结构:树、图堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称
2020-11-26 21:26:49 1303 6
原创 数据结构学习——链式队列解析(C语言版)
数据结构——链队列解析过程和简单代码实现:一、简单概念:动图展示:(1)入队:(2)出队:二、顺序队列:思路步奏:(1)入队操作:(2)出队操作:简单实现代码:三、链式队列(1)声明(2)入队操作:(3)出队操作:(4)检查队列是否为空:全部代码:一、简单概念:队列,又称为伫列(queue),是先进先出(FIFO,First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作队列的操作方式和
2020-11-26 21:07:08 1601 2
原创 51单片机(V51)学习——串口通讯
串口通讯一、串口通讯的概念和用到的寄存器二、简单使用(1)不使用倍增下:(2)用倍增下:一、串口通讯的概念和用到的寄存器二、简单使用头文件:/********************************************************************* * * bstv51.h * **************************************************************
2020-10-03 22:33:30 5793
原创 51单片机(V51)学习——外部中断和定时器中断
51单片机(V51)学习——外部中断和定时器中断简单使用一、外部中断(下降沿开启和低电平开启)(1)外部中断概念:(2)下降沿演示:(3)低电平中断二、定时器中断(1)概念:(2)简单使用一、外部中断(下降沿开启和低电平开启)(1)外部中断概念:要用到的寄存器:EA、EX0、IT0(2)下降沿演示:#include<reg52.h>void main(){ P1 = 0X0F; // 0000 1111 让前面4个灯熄灭,后面4个灯亮起 P3 = 0X0F;
2020-09-29 22:10:00 2762
原创 51单片机(V51)———独立按键、4x4矩阵按键
独立按键、4x4矩阵按键一、独立按键(1)独立按键1.0(2)独立按键2.0二、4X4矩阵按键(1)所用到的位移概念:![在这里插入图片描述](https://img-blog.csdnimg.cn/20200928201835352.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoaW5lc2Vrb2Jl,size_16,color_FFFFF
2020-09-28 20:28:22 1835
原创 51单片机(V51)————静态数码管和动态数码管
51单片机(V51)————静态数码管和动态数码管一、静态数码管二、动态数码管一、静态数码管静态显示的连接方式、静态显示的优缺点(优点:不需要动态刷新;缺点:占用IO口线多)动态显示的连接方式(所有位数码管的段选线并联在一起,由 位选线控制是哪一位数码管有效)、动态显示的优缺点(缺点:需要动态刷新;优点:占用IO口线少)#include<reg52.h>sbit DUAN = P2^6;sbit WEI = P2^7;void main(){ P0 = 0x7d
2020-09-27 11:36:10 2500
原创 51单片机(V51)学习——流水灯、蜂鸣器
V51单片机学习——流水灯和蜂鸣器一、三种流水灯模式(1)板子(2)制作流水灯二、蜂鸣器+流水灯一、三种流水灯模式(1)板子(2)制作流水灯1、间断性开关法#include<reg52.h>// 初始化灯引脚sbit LED1=P1^0;sbit LED2=P1^1;sbit LED3=P1^2;sbit LED4=P1^3;sbit LED5=P1^4;sbit LED6=P1^5;sbit LED7=P1^6;sbit LED8=P1^7;#define O
2020-09-26 21:22:59 2029
原创 fread、fwrite、fopen函数的简单使用和open、read、write区别解析
fread、fwrite、fopen函数的简单使用和open、read、write区别解析一、fread、fwrite、fopen和read、write、open的区别解析:1、fopen和open区别:(1)来源:(2)移植性:(3)缓冲文件系统:(4)非缓冲文件系统:(5)主要区别:2、read/write和fread/fwrite区别:(1)fread是带缓冲的,read不带缓冲(2)其他:二、fread、fwrite、fopen解析(1)函数原型:(2)代码演示:(3)读写用在结构体上:一、fre
2020-09-19 22:34:40 1246
原创 C语言练习——双链表下学生成绩管理系统
双链表实现学生成绩管理系统学生和班级结构体初始化学生:班级:学生链表创建(这里以尾插法为例子!):班级链表创建:输入数据到链表中:求班级里头最高分:求班级里头最低分:求班级平均分:输入班级人数和每个班学生人数:主函数部分:代码演示:学生和班级结构体初始化学生:struct Student{ int math; // 数学 int chinese; // 语文 int english; // 英语 int StudentID;
2020-09-10 22:47:12 983
原创 Linux系统学习笔记——ftp项目
服务端server.c#include<stdio.h>#include<string.h>#include<sys/types.h> /* See NOTES */#include<sys/socket.h>#include<stdlib.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#in
2020-08-25 20:53:18 336 1
原创 树莓派语音+红外模块实现智能家居实践
树莓派+红外+语音模块练习:1、硬件工具有如下:(1)树莓派 3B :(2)语音模块(3)红外模块(某宝购的,需要的可去某宝买)(4)VeMose板(5)本次以空调作为例子:2、需要用到的软件平台:(1)arduino开发环境(2)树莓派系统(3)串口助手调式3、红外解码过程:(1)连接红外设备(连接TTL串口):将TTL串口USB插入电脑,打开串口调试助手,设置好波特率和端口号,安装更新好USB驱动!!!(2)通过串口助手获取红外码(这里以格力空调为例)将获取的红外码,复制重新发送,检查是否为相对应的开关
2020-08-18 22:59:19 2791 14
原创 超声波测距原理、代码实现
超声波测距原理图 :代码实现:时间结构体解析: timevalfloat Measure(){ struct timeval t1; //超声波测距结构体,系统自带 struct timeval t2; long start; // 刚开始接受信号 long end; // 最后接受信号 float distance; digitalWrite(Trig,LOW); // 让超声波一开始信号平稳
2020-08-16 22:36:27 5355 1
原创 Linux系统学习——shell编程入门篇学习
Linux 系统学习——shell编程入门学习一、介绍:1. shell是一个作为用户和linux系统间接口的程序,允许用户向操作系统输入需要执行的命令2、执行脚本:1、./文件名 2、sh 文件名 3、#source 文件名3、在shell上 # 为注释4、每个shell程序需要写在 #!/bin/sh 开始 ,相当于头文件 ,这是对shell声明简单书写 :#!/bin/sh //必须要带上这个 shell 声明A="hello" // 这里不能 A = "hello" , 带有
2020-08-12 16:35:38 610 1
原创 基于树莓派arm架构——智能感应垃圾桶项目
以树莓派arm架构以超声波测距+蜂鸣器+舵机 实现开盖、关盖#include<stdio.h>#include<wiringPi.h> // 调用WiringPi库#include<sys/time.h> // 超声波测距头文件#include<softPwm.h> //调用PWM库#define Echo 5 //超声波端口#define Trig 4 //超声波端口#define BEEP 21 //蜂鸣器#define DU
2020-08-09 23:31:10 1190 1
原创 Source Insight 4.0——如何使用,方便阅读代码
Source Insight 4.0是一款很方便在代码量大的时候,用来观看代码的软件可以从网上下载到中文破解版,或者英文破解版 使用1、在目标代码录中建立一个文件夹,用来存放Source Insight工程文件 :点击刚建好的文件SI 进去,把文件夹路径拷贝下来:2、在Source Insight 中 建立工程 project ——new project :再次点击OK:3、添加目录代码文件:4、查询文件小窗口(此时如果右边没有出现小窗口,我们可以自行打开):View——Pa
2020-08-09 22:01:57 712
原创 树莓派学习——博通BCM2835芯片手册导读、IO口驱动代码调试和测试学习
一、树莓派寄存器介绍:GPFSEL0 GPIO Function Select 0: 功能选择 输入/输出GPSET0 GPIO Pin Output Set 0 : 输出0GPSET1 GPIO Pin Output Set 1 : 输出10 = No effect1 = Set GPIO pin nGPCLR0 GPIO Pin Output Clear 0: 清零0 = No effect1 = Clear GPIO pin nGPCLR1 GP
2020-08-07 23:39:05 3303 5
原创 关于位运算理解——按位或、按位与、异或
位运算理解:一、按位与运算符( & )二、按位或运算符( | )三、异或运算符(^)一、按位与运算符( & )参加运算的两个数,按二进制位进行“与”运算运算规则:只有两个数的二进制同时为1,结果才为1,否则为0(负数按补码形式参加按位与运算)即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1例:3 &5 即 00000011 & 00000101 = 00000001 ,所以 3 & 5 的
2020-08-06 22:38:08 1869
原创 Linux系统学习——实现cp指令拷贝
Linux下实现cp指令的功能:头文件可以通过使用 man 手册查询#include<stdio.h>#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>#include<stdlib.h>#include<string.h>int main(int argc, char **argv){
2020-08-05 22:53:43 264
原创 树莓派Linux——内核源码配置、编译操作
先装好树莓派linux 编译工具,可翻看博文1 编译:ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbsj4 :表示 你装ubuntu设置的配置cpu 线程情况2. 编译成功后,看到源码树目录多了vmlinux,失败则无此文件成功后,目标zImage镜像arch/arm/boot底下3.打包打包zImage成树莓派可用的xxx.img在~/SYSTEM/linux-
2020-08-05 17:07:54 939
原创 树莓派——文件系统解析
文件系统学习1. 什么是文件系统?2. 文件系统(文件管理系统的方法)的种类有哪些?3. 什么是分区?windowsLinux4. 什么是文件系统目录结构?5.什么虚拟文件系统Virtual File System ?6.虚拟文件系统有什么作用?1. 什么是文件系统?常规认知: 根目录文件系统是操作系统用于明确存储设备组织文件的方法。以上说的方法:就是文件管理系统(程序),简称文件系统2. 文件系统(文件管理系统的方法)的种类有哪些?FAT VFAT NTFS EXT1/2/3/4 HF
2020-08-05 16:43:33 1102
原创 树莓派arm架构——微机总线地址、物理地址、虚拟地址介绍
可以使用:cat /proc/cpuinfo 查看树莓派配置参数arm架构图 :虚拟地址 与物理之间 存在一种 算法(页表) 来计算两者地址大小
2020-08-05 16:37:10 883
原创 树莓派arm架构驱动学习——字符驱动pin4
驱动学习初步一、驱动pin4初步框架代码:pin4driver.c调试打开驱动:pin4test.c二、编译生成驱动:这里以我自己虚拟机为例1、进入linux包对应驱动类型下编译:2、编译驱动,生成 pin4driver.ko 文件3、将 pin4driver.ko 发送到树莓派上4、树莓派上加载驱动(在 /dev 上)5、查看目录有哪些驱动6、在linux下用arm编译 pin4test.c7、把 pin4test 发送到树莓派8、运行不了驱动的问题由于我们平时看的页面属于应用层,内核执行的驱动,结果是
2020-08-04 23:41:58 484
空空如也
如何解决双链表实现简单的学生管理系统?
2020-06-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人