- 博客(77)
- 资源 (5)
- 收藏
- 关注
原创 STM32通过IIC驱动SHT31室内温湿度传感器
STM32F103单片机通过IIC控制SHT31室内温湿度传感器SHT31室内温湿度传感器引脚接正点原子STM32F103mini板:SHT31 STM32VCC -> VCC(3.3V)GND -> GNDSDA -> PC11SCL -> PC12本文最后有源工程文件的下载链接。工程文件中使用的delay.h,sys.h,usart.h,myiic.h均为正点原子官方提供的STM32F103mini单片机对应的源码,未做改动。因此
2020-11-30 11:38:58
19632
8
原创 STM32通过IIC驱动MAX30102心率血氧传感器
STM32F103单片机通过IIC控制MAX30102心率血氧传感器MAX30102的VCC引脚连接STM32F103mini单片机的5伏引脚,GND连接5伏对应的GND,SCL连PC12,SDA连PC11,INT连PA5。MAX30102的其他引脚没有用到。本代码能够正常接收MAX30102心率血氧传感器返回的red与ir的数值,能够比较正常计算出心率血氧数值。当心率或血氧值的计算结果有误时对应的变量值为-999。本文最后有源工程文件的下载链接。工程文件中使用的delay.h,sys.h,usar
2020-11-28 15:06:47
33032
102
原创 操作系统复习(十九)——多处理机操作系统
多处理机系统的基本概念多处理机系统的结构多处理机操作系统的特征与分类进程同步多处理机系统的进程调度网络操作系统分布式文件系统
2020-08-30 00:48:52
1753
原创 操作系统复习(十五)——缓冲区管理与磁盘调度算法
缓冲区管理1.缓冲区的引入引入缓冲区的原因有很多,可归结为以下几点: (1) 缓和CPU与I/O设备间速度不匹配的矛盾。 (2) 减少对CPU的中断频率,放宽对CPU中断响应时间的限制。 (3) 解决数据粒度不匹配的问题。 (4) 提高CPU和I/O设备之间的并行性。2.单缓冲区和双缓冲区单缓冲区(Single Buffer) 在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,如图所示。双缓冲区(Double Buffer) 缓冲区是共享
2020-08-28 01:19:57
3179
1
原创 操作系统复习(十四)——I/O设备、设备控制器、中断、I/O软件
I/O系统的功能、模型和接口1.I/O系统的基本功能:隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确共享错误处理2.I/O系统的层次结构和模型:3.I/O系统接口:块设备接口:块设备管理程序与高层之间的接口。(数据的存取和传输都是以数据块为单位的设备称为块设备。此接口隐藏了磁盘的二维结构,将抽象命令映射为低层操作。)流设备接口:流设备管理程序与高层之间的接口。(大多数流设备都属于独占设备,必须采用互斥方式实现共享,因此流
2020-08-28 00:56:48
6011
原创 操作系统复习(十三)——虚拟存储器
虚拟存储器概述全局变量方式由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议使用volatile修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。参数传递方式该方式是线程通信的官方标准方法,多数情况下,主线程创建子线程并让其子线程为其完成特定的任务,主线程在创建子线程时,可以通过传给线程函数的参数和其通信,三类创建线程的函数都支持参数的传递(哪三类?看前面的介
2020-08-27 23:35:24
839
原创 操作系统复习(十二)——存储器管理
存储器的层次结构对于通用计算机而言,存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层为辅存。较高档的计算机里面可以根据具体的功能细分为(CPU)寄存器;(主存)高速缓存、主存储器,磁盘缓存;(辅存)固定磁盘、可移动存储介质。主存储器简称内存或主存,用于保存进程运行时的程序和数据,也称为可执行存储器。寄存器具有与处理机相同的速度,故对寄存器的访问速度最快,完全能与CPU协调工作,但价格昂贵,因此容量不可能做得很大。高速缓存介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,
2020-08-26 00:30:14
848
原创 操作系统复习(十)——进程调度与实时调度
进程调度进程调度的任务、机制和方式1.进程调度的任务保存处理机的现场信息。按照某种算法选取进程。把处理器分配给进程。2.进程调度机制进程调度机制中,应该有三个基本部分排队器,用于将就绪进程按照一定策略排成一个或多个队列,方便调度程序能最快找到目标进程,提高进程调度的效率。分派器,根据进程调度程序选定的进程,分派器将处理及分配给选出的进程。上下文切换器,在对处理机进行切换时,会发生两对上下文的切换操作。第一对上下文切换时,OS保存当前进程的上下文,再装入分派程序的上下文,以便分派程序
2020-08-24 19:19:34
1813
原创 操作系统复习(九)——处理机调度
处理机调度处理机调度的层次高级调度:又称长程调度或作业调度,调度对象是作业。 主要功能:根据算法,决定将外村上处于后备队列中的哪几个作业调入内存,为他们创建进程、分配必要的资源,并将它们放入就绪队列。主要应用于多道批处理系统中。低级调度:又称进程调度或短程调度,调度对象是进程(或内核级线程)。 主要功能:根据算法,决定就绪队列中哪个进程应该获得处理机,并由分派程序将处理机分配给选中的进程。进程调度是最基本的一种调度,在多道批处理、分时和实时三类OS中都必须配置。中级调度:又称为内存调度。 主要目的
2020-08-23 23:47:37
1091
原创 NE5532芯片部分电路原理解读
NE5532引脚结构如下各引脚具体含义如下图:判断实体芯片的引脚顺序方法:(1)芯片表面有一个凹陷圆点,圆点摆到左上方,此时和芯片引脚图一一对应。即圆点左侧最上方为1号引脚。(2)芯片表面有半椭圆形凹陷,,将半椭圆形凹陷摆到上方,此时和芯片引脚图一一对应。即椭圆凹陷左侧最上方为1号引脚。NE5532内部电路图如下内部电路总共分为三级:左半部分是差动输入级,减小零点漂移,抑制共模干扰信号;中间部分是电压放大级,提供足够大的放大倍数;右边是输出级,提高负载能力,给出足够的输出电流。三
2020-08-20 12:27:09
55191
2
原创 操作系统复习(二)——操作系统主要功能
操作系统的主要功能1.处理机管理功能(进程管理):(1)进程控制:为作业创建进程、撤销(终止)已结束的进程,控制进程在运行过程中的状态转换。(2)进程同步:为了使多进程同时运行时协调,有两种方式进程互斥方式:进程在对临界资源进行访问时,应采用互斥方式。(临界资源加锁实现,关锁时禁止访问;锁开时允许访问。)进程同步方式:相互合作去完成共同任务的进程间,由同步机构对他们的执行次序加以协调。(信号量机制)(3)进程通信:实现相互合作进程之间的信息交换。(4)调度:作业调度:从后备队列中按照一
2020-08-18 22:10:04
1721
原创 操作系统复习(一)——概念理论
操作系统的目标和作用操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。主要作用是管理硬件设备,提高利用率和系统吞吐量,并为用户和应用程序提供一个简单的接口,方便用户使用。操作系统的目标与应用环境有关!!!操作系统的目标:(方便性和有效性是设计OS时最重要的两个目标)(1)方便性:方便用户使用计算机硬件(裸机)。(2)有效性:提高系统资源的利用率;提高系统的吞吐量。(3)可扩充性。(4)开放性。操作系统的作用:(1)作为用户与计算机硬件系统之间的接口。(即OS处于用户与计算
2020-08-18 22:08:16
408
原创 C语言复习目录
C语言复习整理(一)——C语言基本概念C语言复习整理(二)——数据类型与类型转换C语言复习整理(三)——程序相关概念C语言复习整理(四)——循环结构C语言复习整理(五)——地址和指针C语言复习整理(六)——数组与冒泡排序C语言复习整理(七)——字符数组与字符处理函数C语言复习整理(八)——指针与数组C语言复习整理(九)——数组与指针等结合知识点细分C语言复习整理(十)——函数与变量存储类型C语言复习整理(十一)——结构体与共用体C语言复习整理(十二)——存储空间的分配与释放C语言复习
2020-08-13 20:42:46
164
原创 数据结构与算法复习整理(一)——基本概念
数据结构+算法=程序数据结构主要研究数据的组织、存储及运算方法。数据结构与算法的研究设计构筑计算机求解问题过程的两个重要方面:刻画实际问题中信息及其关系的数据结构和描述问题解决方案的逻辑抽象算法。数据结构的相关术语:数据:描述客观事物的数值、字符以及能输入到计算机中且能被处理的各种符号集合。数据元素:组成数据的基本单位,是数据集合的个体,计算机中通常作为一个整体进行考虑和处理。数据对象:性质相同的数据元素的集合,是数据的一个子集。数据结构:相互之间存在一种或多种特定关系的数据元素集合。数据元
2020-08-13 19:34:33
541
原创 C语言复习整理(十五)——位运算
位运算一、“按位与”运算符(&)1、运算规则参加运算的两个数据,按二进位进行“与”运算,如果两个相应的二进位都为1,则该位的结果值为1,否则为0,即:0&0=0,0&1=0,1&0=0,1&1=1.2、用途(1)清零。运算对象:原来的数中为1的位,新数中相应位为0。(2)取一个数中某些指定位。如想要取一个整数a(占2个字节)的低(高)字节,只需将a与八进制的377(177400)按位与即可。(3)保留某一个数的某一位。二、 按位或运算符(|)1、运算
2020-08-09 00:11:12
455
原创 C语言复习整理(十一)——结构体与共用体
结构体与共用体结构体定义的一般格式:struct <结构标记>{ 成员1; .... 成员n;};//必须以分号结尾例子:struct date{ int year; int month; int day;};struct student{ char num[9]; char name[21]; int age; float score; struct date birthday;//引用了struct data类型};结构体需要注意的点:(1
2020-08-04 23:33:54
495
原创 C语言复习整理(十)——函数与变量存储类型
函数模块化设计时需要遵循模块独立性的原则。即模块之间的关系应尽可能的简单:(1)一个模块只能完成一个特定的功能。(2)模块之间只能通过参数进行调用。(3)一个模块只有一个入口和一个出口。函数的分类:(1)从用户使用角度:库函数与用户自定义函数。(2)从函数参数传送的角度:有参函数与无参函数。(3)从函数的使用范围角度:内部函数和外部函数。C语言规定,程序中使用到的所有函数,除编译系统提供的标准库函数外,其他的函数必须“先定义,后使用”。(所有函数的定义是并列的、独立的,各个函数之间没有嵌套
2020-08-04 19:20:12
623
原创 C语言复习整理(九)——数组与指针等结合知识点细分
数组知识点细节区分学习数组,我们对于其必要的相关运算也必须要熟练掌握。在这里事先说明两点:数组名代表整个数组的时候只有两种情况:1.sizeof(数组名),这里的数组名表示整个数组。2.&数组名,这里的数组名表示整个数组。除1 2以外所有的数组名均表示首元素地址。接下来用代码实例说明int a[] = {1,2,3,4};printf("%d\n",sizeof(a));(输出结果为16。a代表整个数组,求的是整个数组的大小)printf("%d\n",sizeof(a+0));(输出结果
2020-08-04 15:04:04
256
原创 C语言复习整理(七)——字符数组与字符处理函数
字符数组字符数组的定义和初始化和一维数组一样。(初始化时给出的初值列表字符数小于定义的元素数,则自动补结束符。如果给出的字符数等于元素数,则不会自动补结束符)字符数组初始化时可以去掉定义时的长度设置,例:char a[]=“ac all correct”。系统会自动加结束符,元素数为双引号内的有效字符数加1。所以在定义字符数组时,定义的元素数一定要大于实际使用的有效长度!!!字符数组的输入:逐一输入用%c,存储时需要加&符号。整体输入用%s。字符数组的输出:逐一输出用%c,与数值型数组用法
2020-08-04 15:03:26
796
原创 C语言复习整理(六)——数组与冒泡排序
数组C语言规定,数组元素的下标一律从0开始,下标只能为整型常量或整型表达式,下标最小值不能小于0,最大值不能大于数组长度减1。引用时下标不得越界。数组定义时,不能将元素数定义为0或是实型,也不能含有变量。C语言只能逐个的使用下标变量,不能一次引用整个数组。(即数组的输入存储和输出时都是使用循环语句逐个输出各下标变量)一维数组元素初始化(1)数组元素赋值时只能逐个进行赋值,不能给整体赋值,如果对所有元素赋同一初值,也必须一一列出。(2)也可以只给一部分元素赋初值。例如a[10]={1,2,3,4}
2020-08-04 15:02:09
386
原创 C语言复习整理(五)——地址和指针
地址和指针的概念地址相当于“房间号”,地址里面存放的数据值相当于“房间内的东西”,这里数据值即为变量的内容,房间号就是变量的地址。直接访问:用变量名直接从对应地址存取变量的值。间接访问:通过另一变量名访问的方式。(中介变量)指针:变量的指针就是变量的地址,指针类型就是地址类型,而存放指针的另一变量就是指针类型的变量。(地址并不是一个简单的数字,它含有存储位置和该位置存储数据类型的两个概念,所以定义指针变量时,必须指明它所指向变量的类型)指针变量地址运算符&:也称为取地址运算符,就是取地
2020-08-04 09:59:50
1129
原创 C语言复习整理(四)——循环结构
选择分支结构部分过于简单,不整理了,直接来循环结构部分。循环结构程序设计(1)while语句:先判断后执行。如果循环条件不成立,则不执行。(一开始条件就不满足,则循环一次都不执行)(2)do-while语句:先执行后判断。如果循环条件一开始就不成立,循环也将执行一次。(3)for语句:可控次数的循环语句。(for(;;)是无限循环,等价于while(1))循环结束语句(1)continue:只能出现在循环体中,往往与if语句联用,continue语句作用是跳过此句之后循环体的所有语句,直接去判断
2020-08-04 03:26:58
465
原创 C语言复习整理(三)——程序相关概念
算法程序 = 数据结构 + 算法算法特性:有穷性,确定性,可行性,有输入,有输出。算法的标准:正确性,可读性,健壮性(鲁棒性),高效率与低存储量需求。算法的表示:流程图,N-S结构流程图。结构化程序设计方法:自顶向下,模块化,限制使用GOTO语句。程序的基本结构(1)顺序结构:程序的执行时按照编写的顺序一句一句执行。(2)选择结构:根据判断条件执行某个指定操作。(3)循环结构:重复执行一个操作的集合。上述三种结构都有一个共同的特点,即只有一个入口和出口。数据的输入与输出输出相关格式符
2020-08-04 03:10:38
280
原创 C语言复习整理(二)——数据类型与类型转换
基本数据类型(1)基本类型:整形,实型(浮点型),字符型,枚举类型。(2)构造类型:数组类型,结构体类型,共用体类型。(3)指针类型(指针类型的值是地址值)(4)空类型(例如void声明的函数不带回返回值就是空类型)常量(1)整形常量:十进制(不以0开头,无前缀%d),八进制(以0为前缀,无小数部分,%o),十六进制(以0x或0X开头,%x)。另外还有长整型常量在后加后缀L或l,无符号常量后加后缀U或u。(例如:123L是长整型常量,123U是一个无符号整形常量,123UL是一个无符号长整型常量
2020-08-04 02:04:26
601
AD8232.docx
2020-08-02
STM32F103mini-MLX90614工程文件
2020-11-30
STM32F103mini驱动MAX30102心率血氧传感器工程文件包
2020-11-28
STM32F103mini板通过软模拟IIC驱动-SHT31室内温湿度传感器
2020-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅