自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 进程学习笔记

每个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证调用getpid( )函数获取自身的进程标识符,调用getppid获取父进程的进程标识符。

2022-08-11 21:49:50 267 1

翻译 C语言基础-上

1)在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。在发生函数调用时,函数的形参被临时分配内存单元。2)将实参对应的值传递给形参。例如实参的值为2,把2传递给相应的形参x,这时形参x就得到值2,同理,形参y得到值3。3)通过return语句将函数值带回到主调函数。执行return语句就把这个函数返回值带回主调函数main。应当注意返回值的类型与函数类型一致。4)调用结束,形参单元被释放。注意,实参单元仍保留并维持原值,没有改变。...

2022-08-09 22:08:34 646

翻译 C语言基础-下

在C语言中,数组名代表数组中首元素(即序号为0的元素)的地址。因此,下面两个语句等价:// p的值是a[0]的地址// p的值是数组a首元素(即a[0])的地址{int *p;int *p1;p1 = arr;printf("arr[0]的地址为:%p\n",p);printf("arr的首元素的地址:%p\n",p1);return 0;}使用点运算符访问结构体成员变量{int num;char sex;int age;};{...

2022-08-05 23:13:17 481

翻译 基于ncurse库的贪吃蛇小游戏

蛇身的链表创建是静态创建的,如果要增加节点也是非常不方便,需要手动添加。另一个线程获取方向键,而方向键的改变可以影响addNode()函数新增节点的里面的数据的改变,这样就能形成移动的效果。2.在地图打印空格之前判断蛇节点的row和column是否等于当前的row和column,如果是就打印"[]"作为蛇身的节点。1.先手动静态创建几个节点,并且使用链表将节点串起来,在打印空格之前判断是不方便的,不能把所有的节点都一一进行判断。修改addNode()函数,根据方向键的值来判断新增节点的值。......

2022-07-30 21:46:32 272

原创 Linux文件编程API的使用

3.文件描述符,这个数字在一个进程中表示一个特定含义,当我们open一个文件时,操作系统在内存中构建了一些数据结构来表示这个动态文件,然后返回给应用程序一个数字作为文件描述符,这个数字就和我们内存中维护的这个动态文件的这些数据结构绑定上了,以后我们应用程序如果要操作这个动态文件,只需要用这个文件描述符区分。文件描述符是一个非负整数。2.强调一点我们对文件进行操作时,一定要先打开文件,打开成功之后才能操作,如果打开失败,就不用进行后边的操作了,最后读写完成后,一定要关闭文件,否则会造成文件损坏。...

2022-07-29 19:37:03 452 1

原创 单链表的基本操作

如果指定节点是头节点,让新节点的后继节点设置为头节点,即new->next=head;如果删除的节点不是头节点,则通过判断头节点下一个节点是否是我们需要找的删除的节点(通过p->next->data==data来判断);如果指定节点不是头节点,则通过判断头节点下一个节点是否是否我们需要找的指定节点(通过p->next->data==data来判断);链表的最后一个节点是没有后继节点;如果删除的节点是头节点,让头节点直接指向第二个节点,即head=head->next;...

2022-07-27 20:18:10 607 1

翻译 字符串和字符串函数

在上面的程序中使用了多种方法(即字符串常量,char类型数组,指向char的指针)定义字符串。程序应该确保有足够的空间存储字符串。1.字符串字面量(字符串常量)用双引号括起来的内容称为字符串字面量,也叫作字符串常量。必须在双引号前面加上一个反斜杠(\)输出如下字符串常量属于静态存储类别,这说明如果在函数中使用字符串常量,该字符串只会被存储一次,在整个程序的生命期内存,即使函数被调用多次。用双引号括起来的内容被视为指向该字符串存储位置的指针。这类似于把数组名作为指向该数组位置的指针。。。中。......

2022-07-25 22:39:12 575

翻译 反转字符串题目

字符串反转,输入字符串“the sky is blue”,将其输出为“blue is sky the”

2022-06-23 18:06:05 173

翻译 数组和指针

1 数组 数组由数据类型相同的一系列元素组成。需要使用数组时,通过声明数组告诉编译器数组中内含多少元素和这些元素的类型。编译器根据这些信息正确地创建数组。普通变量可以使用的类型,数组元素都可以用。考虑下面的数组声明:float candy[365]; //内含365个float类型元素的数组char code[12]; // 内含12个char类型元素的数组int states[50]; // 内含50个int类型元素的数组方括号【】表明candy,code和states都是数组...

2022-06-05 22:46:53 424

翻译 函数的使用

1 复习函数首先,什么是函数?函数(function)是完成特定任务的独立程序代码单元。语法规则定义了函数的结构和使用方式。虽然C中的函数和其他语言中的函数,子程序,过程作用相同,但是细节上略有不同。一些函数执行某些动作,如printf()把数据打印到屏幕上;一些函数找出一个值供程序使用,如strlen()把指定字符串的长度返回给程序。一把而言,函数可以同时具备以上两种可能。为什么要使用函数?首先,使用函数可以省去编写重复代码的苦差。如果程序要多次完成某项任务,那么只需要编写一个合适的函数,就可以在

2022-05-08 17:14:52 1141

翻译 字符输入/输出和输入验证

1 单字符I/O:getchar()和putchar()getchar()和putchar()每次只处理一个字符。你可能认为这种方法实在太笨拙了,毕竟与我们的阅读方式相差甚远。但是,这种方法很适合计算机。如下程序,该程序获取从键盘输入的字符,并把这些字符发送到屏幕上。程序使用while循环,当读到#字符时停止。自从ANSI标准发布以后,c就把stdio.h头文件与使用getchar()和putchar()想关联,这就是为什么程序中要包含这个头文件的原因(其实,getchar()和putchar(

2022-04-16 20:49:52 1096

翻译 c控制语句:分支和跳转

1 if语句while循环的测试条件利用scanf()的返回值来结束循环,因为scanf()在读到非数字字符时会返回0。if语句被称为分支语句或选择语句,因为它相当于一个交叉点,程序需要在两条分支中选择一个执行。if语句的通用形式如下:if(expression)statement2 if else语句c还提供了if else形式,可以在两条语句之间作选择。if else语句的通用形式:if(expression)statement1elsestatement2如

2022-03-26 22:58:00 405 2

翻译 c控制语句:循环

目录再探while循环程序注释c风格读取循环while语句终止while循环何时终止循环while:入口条件循环语法要点用关系运算符和表达式比较大小什么是真其他真值新的_Bool类型优先级和关系运算符不确定的循环和计算循环for循环利用for的灵活性其他赋值运算符:+= ,-=,*=,/=,%=逗号运算符当zeno遇到for循环出口条件循环:do while如何选择循环嵌套循环程序分析嵌套变式数组简介..

2022-03-17 11:10:02 461

翻译 运算符,表达式和语句

循环简介该程序用#define指令创建符号常量和用const限定符创建在程序运行过程中不可更改的变量。 接下来使用while循环,让计算机做重复的计算。当程序第1次到达while循环时,会检查圆括号中的条件是否为真,该程序中,条件表达式如下:shoe < 18.5 变量shoe被初始化为3.0,显然小于18.5.因此,该条件为真,程序进入块中继续执行,循环中shoe = shoe + 1.0,改变了shoe的值。此时,程序返回while入口部分检查条件。为何要返回...

2022-03-11 15:12:57 190

翻译 字符串和格式化输入/输出

前导程序该程序包含一下特性:1.用数组存储字符串。在该程序中,用户输入的名被存储在数组中,该数组占用内存中40个连续的字节,每个字节存储一个字符值。2.用c预处理器把字符常量DENSITY定义为62.43.用c函数strlen函数获取字符串的长度。字符串简介字符串是一个或多个字符的序列,如下所示:“this is a string”双引号不是字符串的一部分,双引号仅告知编译器它括起来的是字符串,正如单引号用于标识单个字符一样。----char类型数组和null字符:

2022-03-06 21:05:01 308

翻译 c语言概述

目录简单的c程序示例示例解释复习题简单的c程序示例frist.c程序:示例解释----组成c程序的几个部分:----c语言中的6钟语句: 标号语句 复合语句 表达式语句 选择语句 迭代语句 跳转语句----#include指令和头文件: #include<stdio.h>的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上,这是一种“拷贝...

2022-03-01 21:29:40 332

翻译 初识C语言

c语言的优点与缺点优点:1.模块化设计2.运行速度快3.代码紧凑4.可移植性强缺点:c语言使用指针,而涉及指针的编程错误往往难以察觉。例如:对未初始化的指针进行读写操作。c语言的应用范围c语言已成为嵌入式系统编程的流行语言。越来越多的汽车,照相机,DVD播放器机和其他现代化设备的微处理器都用c语言进行编程。计算机能做什么现代的计算机由多种部件构成。主要的由5个基本部分组成:CPU,内存RAM,外存ROM,输出设备,输入设备等。CPU负责处理程序,它的工作原

2022-02-28 14:30:13 243

翻译 linux+ubuntu

Linux和ubuntu的关系linux简介:生日:1991年10月5日类unix操作系统遵循posix标准信仰:一切皆文件linux与unix的关系:ios与android都是基于unix开发出来的,linux是基于unix开发出来的。linux是一个内核,最开始是没有图形化界面的。随着时代的发展在linux的基础上开发了debian,再到现在的ubuntu。linux基本命令的使用shell是什么?shell是操作系统的用户界面,提供了用户和内核进行交互操作的

2022-02-05 18:50:18 330

翻译 makefile工程实践第二季

makefile的发展过程makefile工程实践回顾:----手工编写makefile----重构我们的makefile----减少开发者负担,使其精力关注在软件逻辑及业务实现上,而不是底层的编译,链接细节。----减少项目维护者负担自动创建makefile:----使用工具自动创建makefile----GNU Autotools,Cmake,Scons,Ant等----大型项目什么是GNU Autotools?----全称GNU‘s Not Unix(G..

2022-01-18 12:29:38 359

翻译 Makefile工程实践

makefile简介一个工程中的源文件不计其数,其按类型,功能,模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,也可以执行操作系统的命令。(摘抄百度百科)程序的编译与链接程序的编译与链接:可执行程序的生成经过两个过程:编译过程和链接过程以生成helloworld.exe可执行程序为列:程序文件的分类:程序文件分为两大.

2022-01-08 00:42:37 775

翻译 vim的使用以及vim插件的配置

目录vim简介vim工作模式光标移动文件插入操作文本删除文本复制,剪切与粘贴文本修改与替换vim配置与vimrc配置文件vim的按键映射vim脚本语法ctags的使用taglist的使用vim简介vim是一款功能强大,高度可指定的文本编辑工具。vi是visual interface的简写,vim是 Vi IMproved的简写。vim的安装命令:sudo apt-get install vim如果安装不了,可以输入以下指令更新下数据...

2021-12-20 21:53:40 1789

翻译 c语言入门

目录c语言及标准发展过程c语言及标准发展过程c语言之父---丹尼斯 .里奇丹尼斯--里奇(Dennis Ritchie),c语言之父,unix之父。与肯.汤普逊一起发明了c语言,开发了unix操作系统。里奇一生为人低调,终身未娶。和c语言一样,保持简单,是她的生活哲学。计算机语言的发展历史:机器语言1和0CPU:译码单元和执行单元汇编语言用英文字母或符号串来代替机器语言的二进制码汇编器高级语言便于人类阅读和编辑的编程语言编译器.

2021-10-05 19:32:16 707

原创 树莓派和语音模块实现语音识别功能

树莓派和语音模块的接线示意图

2021-07-31 11:23:41 741

原创 火焰传感器模块的使用

实现功能:当感应到火焰的时候,蜂鸣器发出响声。使用的模块:树莓派4B,火焰传感器,蜂鸣器。蜂鸣器使用说明:VCC接3.3VGND接地I/O接输出引脚注:低电平触发蜂鸣器响火焰传感器说明:VCC接5VGND接地AO模拟输出,DO是数字输出;计AO根据收到的信号,输出0~1023模拟信号,DO根据设定的阀值输出0或1。注:当感受到火焰的时候,DO呈现低电平代码如下:#include <stdio.h>#include &l.

2021-07-26 23:07:08 2577

原创 简单工厂模式的实现

软件设计模式,又称设计模式,是一套被反复使用,多数人知晓的,经过分类编目的。代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性,程序的重用性。设计模式一共有23种。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象,c面向过程,是一门不太友好的面向对象的语言,java面向对象。什么是类与对象?类是一种用户定义的引用数据类型,也称类类型。类是一种抽象的概念,每个类包含数据说明和一组操作数据或传递消息的函数,对象是

2021-07-23 00:22:13 233 1

翻译 总线地址,物理地址和虚拟地址

总线地址地址总线(Address Bus)是一种计算机总线,是CPU或者DMA能力的单元,用来沟通这些单元想要访问(读取/写入)计算机内存组件/地方的物理地址。我们平时所说的计算机是32位,64位,指的是计算机的CPU中寄存器的最大存储长度,如果寄存器中最大存储32bit的数据,就称之为32位系统。在计算机中,数据一般都是在硬盘,内存和寄存器之间进行来回存取。CPU通过3种总线把各组成部分联系在一起:地址总线,数据总线和控制总线。地址总线的宽度决定了CPU的寻址能力,也就是CPU能达到的最大地址范围

2021-07-18 18:07:07 687

原创 基于框架编写驱动代码

主设备号和次设备号linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放再/dev目录下,称设备文件。应用程序可以打开,关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区别不同种类的设备,而次设备号用来区别同一类型的多个设备。对于常用设备,linux有约定编号,如硬盘的主设备号是3.驱动链表管理所有设备的驱动链表,对于驱动链表我们一般有两种操作,添加和查找。添加指的是我们在编

2021-07-18 11:07:38 48

原创 CPU的工作原理

二进制运算 例如二进制加法: 0+0= 00 0+1= 01 1+0= 01 1+1= 10布尔运算布尔运算最基本的算法有3种 非运算,与运算,或运算。例如: 我们输入A,B两个信号: 非运算就是如果A...

2021-07-13 22:24:20 382 1

翻译 c语言关键字const

const的作用const修饰的对象的值不可以改变例如:const int b =20;在后面的代码种就不能改变变量b的值了,b中的值永远是20;指针常量例如:int a = 20;int b = 20;int * const p = &a;这里的const用来修饰指针变量p,p在定义为变量a的地址之后,就固定了,不能再被改变了。如果再后面的代码写p = &b。编译时就会报错,因为p是不可以改变的。但是指针变量p所指向的那个变量a的值是可以改变的.

2021-07-13 22:20:41 51

原创 半导体PN结的工作原理

金属导电原理原子的构成结构示意图从图中可以看出,一个原子由原子核和核外电子构成 ,而原子核由质子和中子构成。中子不带电,质子带正电,核外电子带负电,整个原子显中性。一个原子的最外层电子树为8时最稳定,电子数小于<4,受原子核的约束力小,容易脱离原子核。电子数>4,受原子核的约束力大,不容易脱落原子核。很多金属原子最外层电子数小于4,容易丢失电子,这些电子成为自由移动的电子,在电场的作用下,会发生定向移动形成电流,这就是金属导电的原理。半导体元素一般最外层电子数为4,这

2021-07-07 00:02:35 2947

原创 代码管理工具git

目录使用场景版本控制系统Git的安装和配置git的使用演示使用场景在软件开发过程中,每实现一个功能,每前进一步,都需要存档备份,保存为一个版本,然后以这个版本为基点进行下一个版本的开发。版本控制系统版本控制系统的的作用:它会跟踪并记录一个项目中每一个文件的变化:谁创建了它,谁修改了它,又是谁删除了它,是什么时候,修改了什么内容,都意义记录在案。版本控制系统的种类:1.集中式版本控制系统2.分布式版本控制系统集中式版本控制系统的缺点就是 数据存储在服务器

2021-07-06 00:09:02 253

原创 程序编译工具gcc和make

gcc编译C源程序在Ubuntu环境下,使用如下指令安装gcc工具:sudo apt-get install gcc使用如下指令查看版本号:gcc -vgcc在编译源文件时,会依次调用预处理器,编译器,汇编器,链接器,最后生成可执行的二进制文件。根据需要,我们也可以通过gcc的编译参数来控制程序的编译过程。-E:只对C源文件进行预处理,不编译。-S:只编译到汇编文件,不再汇编。-c:只编译生成目标文件,不进行链接。-o:指令输出的可执行文件名。-I:大写的I,..

2021-07-05 00:04:14 515 2

原创 文件系统相关概念

文件系统文件系统是操作系统用于明确存储设备组织文件的方法,操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统的种类在Ubuntu下面使用df -T查看文件的类型ext4:bootloader vfat:根目录 tmpfs:内存文件系统分区windows的分区比较随意,一般C盘存放系统文件(也可以随意存放其他的文件),D盘随意用户存放。linux的分区按照功能进行划分,每一个分区严格存放文件嵌入式系统可以分为4...

2021-07-04 18:15:53 99

原创 配置并交叉编译树莓派linux内核

windows系统和linux系统启动过程windows启动过程:1.启动电源,BOIS启动windows,windows识别C盘,C盘运行APP.linux启动过程:1.启动电源,bootloader启动linux内核,linux内核识别根文件系统,根文件系统运行APP。linux源码目录树...

2021-07-04 12:09:16 411 1

原创 软链接硬链接的概念

软链接使用场景:当我们需要在不同的目录用到相同的文件,不需要在每个目录下都放一个相同的文件,只需要在某个固定目录放上该文件,然后在其他的目录下使用软链接链接该文件,不需要重复占用磁盘空间。1.软链接文件有点类似于windows的快捷方式。2.在符号连接中,文件实际上是一个文本文件,其中包含的是所需文件的位置信息软链接的使用格式:ln -s 被链接的源文件 链接文件硬链接:硬链接会在选定的位置上生成一个和源文件大小相同的文件硬链接的使用格式:ln 被链接的源文...

2021-07-01 22:25:32 92

原创 交叉编译带wiringPi库的文件

1.一般拿到一个库包,都会进入文件包查看一下README.TEXT文件2.查看INSTALL文件如何安装3.使用file查看文件属性发现该库是适用X86平台的4。从树莓派的/usr/lib目录下获取wiringPi库

2021-07-01 21:50:59 67

原创 代码工具Vim安装与配置

Vim的安装Ubuntu系统自带的默认文本编辑工具是Vi,方向键和退格键不能用。Vi是visual interface的简写。所以就出现了Vi的加强版:Vi improved, 即Vim。如果Ubuntu操作系统是联网的,直接在Sell命令行下输入以下指令:sudo apt-get install vimVim常用模式普通模式:打开文件时的默认模式,在其他模式下按下ESC键都可以返回到该模式。插入模式:按i/o/a键进入该模式,进行文本编辑操作,不同之处在于插入字符的位置在光.

2021-06-29 23:06:32 139 3

原创 交叉编译概述

交叉编译交叉编译是在一个平台上生成另一个平台上的可执行代码。例如,在ubuntu上面编写树莓派的代码,并编译成可执行代码。这个可执行代码是在树莓派上面运行的,不是在ubuntu上面运行的。为什么要交叉编译?目的平台不允许或不能够安装我们所需的编译器。有时是因为目的平台上的资源贫乏,无法运行我们所需要的编译器。有时是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。宿主机(host):编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。目标机(target)

2021-06-29 22:12:16 101

原创 树莓派和电脑之间串口通信

串口通信是全双工的,串口通信最重要的参数是波特率,数据位,停止位,奇偶校验位。两个人能正常沟通,得使用相同的语言,语速适当。而串口通信也是类似,波特率衡量通信的速度,数据位,停止位,奇偶校验位组成了数据格式。树莓派外设开发接口文档参考https://www.cnblogs.com/lulipro/p/5992172.html树莓派串口默认是被蓝牙占用了,配置释放之后才能使用它进行串口通信。参数步骤如下:1.修改根目录下的cmdline.txt文件,输入以下指令:sudo

2021-06-28 23:28:43 693

原创 超声波模块的使用

超神波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有4个引脚:vcc(正极),trig(触发),echo(回应),GND(接收),主要参数:1.工作电压与电流:5v,15mA2.感测距离:2-400cm3.被测角度:不大于15°4.被测物的面积不要小于50cm2并且尽量平整5.具备温度补偿电路在超声波模块触发脚位输入10微妙以上的高电位,即可发射超声波,发射超声波之后,与接收到传回的超声波之前,“响应”脚位呈现高电位。因此,程序可从“响应”脚位的高电..

2021-06-27 16:15:16 2146

空空如也

空空如也

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

TA关注的人

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