自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于 wemos d1 智能感应开盖垃圾桶

基于WEMOS d1的智能感应开盖垃圾桶1.需要用的软件;arduino垃圾桶视频; 智能感应开盖垃圾桶 2.硬件清单1.Wemos d1 板子2.超声波模块3.SG90 舵机4.垃圾桶模型5.杜邦线(注意;公对母线)6.安卓线7.电源(自己看情况,安卓线连电脑也可以)8.热熔胶3.组装后的垃圾桶超声波模块接线;Vcc - 5vGnd - GndTrig

2020-10-20 14:36:22 1188 1

原创 STM32 IIC和USART接口

多达9个通信接口多达2个I2C接口(支持SMBus/PMBus)多达3个USART接口(支持ISO7816接口,LIN,IrDA接口和调制解调控制)多达2个SPI接口(18M位/秒)一个CAN接口(2.0B主动)一个USB2.0全速接口I2C总线总线 - 一个主设备下面挂接多个从设备,通过一条总线通信。多达2个I2C总线接口,能够工作于多主模式或从模式,支持标准和快速模式。I2C从模式支持双从地址寻址。内置了硬件CRC发生器/校验器。他们可以使用DMA操作并支持SMBus总线2.0版/P

2021-03-23 14:23:41 1828 1

原创 STM32 看门狗和嘀嗒定时器

看门狗一个定时器,独立的定时器,对单片机CPU进行监控,一旦CPU的程序出现错误,或者电压过低使单片机出现任何意外情况,看门狗就会给单片机复位使单片机回到初始状态。单片机就会从错误中脱离出来。看门狗–是一个定时器,供能–计数。每隔一段时间就喂狗–计数清零,重新计时,程序出错不能喂狗,得复位。独立看门狗独立看门狗是基于一个12位的递减计数器和一个8位的预分频器。他有一个内部独立的40KHz的RC振荡器提供时钟;因为这个RC振荡器独立于主时钟,所以他可运行于停机和待机模式。它可以被当成看门狗用于在发生问

2021-03-23 14:00:33 676

原创 STM32 调解模式和定时器

调解模式串行单线调试(SWD)和JTAG接口想要开发一款好程序,必须经历一个调试的过程。ARM内核自带调试功能;多达7个定时器;3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入。1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器。2个看门狗定时器(独立看门狗和窗口型的)系统时间定时器;24位自减型计数器。通用定时器(TIMx)stm32f103xx增强型产品中,内置了多达3个可同步运行的标准定时器(TIM2,T

2021-03-22 21:04:59 1463

原创 STM32 DMA和I/O端口

DMA ;7通道DMA控制器支持外设;定时器,ADC,SPI,I2C,USART。**7通道的意思是 ;先不用知道(手动狗头)。DMA主要用途;上一篇讲过,DMA帮助我们把ADC的数据直接放入SRAM中,方便我们后续读取和操作。DMA属于CPU小帮手,不用CPU的参与下就能够把数据存下来,或者传输到其他地方。数据手册;灵活的7路通用DMA可以管理在存储器到存储器,设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区管理,避免了控制器传输到达缓冲区结尾时所产生的中断。每个通道都

2021-03-22 16:44:48 1355

原创 STM32 低功耗和ADC

低功耗stm32f103xc,stm32f103xd和stm32f103xE增强型产品支持三种低功耗模式,可以在要求低功耗,短启动时间和多种唤醒事件之间达到最佳的平衡。睡眠模式在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件是唤醒CPU。停机模式在保持SRAM和寄存器内不会丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PPL,HSI的RC振荡器和HSE晶体振荡器被关闭,调压器可以置于普通模式或低功耗模式。可以通过任一配置成E

2021-03-21 20:13:09 1949 1

原创 STM32 时钟 复位和电源管理

电源管理-2.0 ~ 3.6V 供电和I/O引脚,引脚带FT标的兼容5V。复位上电/断电复位(POR/PDR),可编程电压监测器(PVD)(设定一个电压值,低于此电压时,单片机复位,保证系统工作稳定)。时钟如果没有时钟,单片机就不能工作。4~16MHz 晶体振荡器(外部接的晶振)。内嵌经出厂调校的8MHz的RC振荡器 - 内部电容电阻产生振荡器,ARM内核提供的系统时钟。内嵌带校准的40KHz的RC振荡器 - 是给RTC使用的。产生CPU时钟的PPL- 锁相环/锁相回路,用来统一

2021-03-21 19:06:16 1264

原创 STM32 内核与存储器

看数据手册第一页stm32f103x8中等容量增强型,32位基于ARM核心的带64k或128k字节闪存的微控制器 USB,CAN,7个定时器,2个ADC,9个通信接口。内核 ; ARM 32位的Cortex TM-M3 CPU1.最高75MHz工作频率,在存储器的0等待周期访问时可达1.25DMiPs(Dhrystone2.1)2.单周期乘法和硬件除法(就是支持乘法和除法)存储器1.从64k或128k字节的闪存程序存储器2.高达20k字节的SRAM存储器缩写类型存储内容读

2021-03-21 18:49:04 1016

原创 C语言中的枚举

举例typedef enum { Bit Reset = 0, Bit_set}BitAction;1.什么是枚举数据?2.枚举数据有什么用?3.具体使用方法?1.枚举的定义枚举是一种数据类型,他只是包含自定义的特定数据,它是一组有共同特性的数据集合。例如;四季–春 夏 秋 冬星期–星期一 星期二 星期三 。。。。2.格式** enum 枚举名{标识符 [ = 整型常数],...}枚举变量;enum ABC { a = 4, b = 5, c

2021-03-19 21:44:36 1722 1

原创 stm32中C语言变量的定义

二进制和十进制二进制十进制011021131004101511061117100081001910101011111111255十六进制和十进制十六进制十进制十六进制十进制00B1111C1222D1333E1444F15551016661117771218881319

2021-03-19 20:19:54 3541

原创 细说IO口

stm32 IO口每个GPIO淫叫都可以由软件配置成输出(推挽或开漏)。输入(带或不带上拉或下拉)或复用的外设功能端。多数GPIO引脚都与数字或模拟的复用外设公用。除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。typedef enum { GPIO_Mode_AIN = 0x0 // 模拟输入 GPIO_Mode_IN_FLOATING=0x04 // 浮空输入 GPIO_Mode_IPD = 0x28

2021-03-17 21:26:37 1668 1

原创 芯片制造原理及STM32命名规则

举例 stm32f103c8t6=====================================公司;ST-- 意法半导体公司名M – Microcontrollers系列;32 – 基于ARM的32位微处理器8 – 8为微处理器类型;F – 通用性S – 高性能L – 低功耗H – 高性能AL – 汽车应用低功耗性AF – 汽车应用通用性子系列;0 – 精简系列1 – 增强系列2 – 增强系列3 – 增强系列4 – 高性能系列7 – 高性能系列引脚数;

2021-03-17 17:50:58 215

原创 ARM内核,RISI(精简指令集),32位系统

1.ARMARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。简单说,ARM–性能出众的32位处理器的内核架构。cortex-M系列ARM架构处理器的特点ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。1、体积小、低功耗、低成本、高性能;2、支持Thumb(16位)

2021-03-17 17:29:57 2650

原创 ESP8266 MakeFile文件

MakeFile 文件在ESP8266开发中工程文件中,MakeFile文件是给编译器看的,告诉编译器应该变异/链接哪些文件,【.c】,【.h】文件存放在什么位置等。MakeFile文件存放的位置有;:工程根目录下:app根目录下【.c】(用户编程文件)同级目录下等…...

2021-01-17 21:14:09 195

原创 函数返回值和参数

代码;#include <stdio.h>#include <stdlib.h>void maiMi(){ // void 代表无返回值,不需要return,void代表返回值的类型是无类型,return要写,之不过return后面不加变量 printf("去买米\n"); return ;}void maiMi2(short jinShu,int ci){ // jinShu--是形式参数,意思有点类似变量定义,所以写法也类似变量定义。如;int jinSh.

2021-01-09 14:40:23 274

原创 函数概述

先举一例;这个场景用C语言函数怎么实现?上代码#include <stdio.h>#include <stdlib.h>int main(){ chuMenQianzhunbei(); zaiLuShang(); jianMian(); huiJia(); system("pause"); return 0;}void chuMenQianzhunbei(){ printf("洗漱\n"); printf("穿衣\

2021-01-09 13:44:03 83

原创 java继承中构造方法的特点及super,this关键字的用法

继承中构造方法的特点1.子类构造方法中有一个默认隐含的“super”调用,所以一定是先调用父类构造方法,后执行子类构造方法。2.可以通过super 关键字在子类构造方法调用父类重载构造方法。3.【重写】super 的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。总结子类必须调用父类构造方法,不写则赠送super(); 写了则用写的指定的super调用 ,super只能有一个,还必须是第一个。super关键字的三种用法...

2020-12-31 16:36:25 280 1

原创 java中的重写 Orerride

区分子类方法中重名的三种变量继承中成员方法的访问特点;在父子类的继承关系中,创建子类对象,访问成员方法的规则;创建的对象是谁,就优先用谁,如果没有则向上找。注意事项无论是成员方法还是成员变量,如果没有都是向上找,绝对不会向下找子类。重写(Orerride)概念–在继承关系当中,方法名称一样,参数列表也一样就叫做重写(Orerride)。 1.重写(Orerride)--方法名称一样,参数列表也一样。 2.重载(Overlood)--方法名称一样,参数列表不一样。继承中

2020-12-31 16:01:30 141

原创 java中继承的概述

继承面向对象三大特征;封装,继承,多态继承是多态的前提,没有继承,就没有多态。继承主要解决的问题是;共性抽取。继承关系中的特点;1.子类可以拥有父类的“内容”。2.子类还可以拥有自己的专有内容。继承的格式;关键字–extends(继承,延伸,扩展)格式;定义一个父类格式(一个普通的类定义); public class 父类名称{ 内容} 定义一个子类格式; public calss 子类名称 extends 父类名称{ 内

2020-12-31 15:31:13 120

原创 java 中Array数组工具

数组工具Arraysjava.util.Arrays 是一个与数组相关的工具,里面提供了大量的静态方法,用来实现数组常见的操作。1.public static String toString(数组);将参数数组变成字符串(按默认格式;元素一,元素二,元素三·······)。int [ ] array = {1,2,3,4,5,6};System.out.println(Arrays.toString(array));2.public static void sort(数组);按照默认顺序(从

2020-12-31 14:50:42 246

原创 java中静态关键字static的概述

static关键字一旦使用了static关键字,那么这样的内容不再属于对象自己,而是属于类,所以凡事本类的对象,都共享一份。静态关键字static修饰成员变量格式; static int num;静态关键字static修饰成员方法格式;public static void hanshu(){ }首先创建对象,才能使用静态方法。可以通过对象名调用,也可以用类名称调用。obj.methodstatic();----不推荐Myclass.methodstatic();----推荐

2020-12-31 13:26:43 110

原创 java中 字符串的常用相关方法 二

字符串的截取方法1.public String subString(int index);截取从参数位置一直到字符串末尾,返回新字符串。2.public String subString(int index,int end);截取从begin开始,一直到end结束,获取中间的字符串。备注 [ begin,end) 包含左边,不包含右边。例子;String str = "vdfsfjgdajfkafja";System.out.println(str. subString(5));Syste

2020-12-30 23:21:53 56

原创 java中 字符串的常用相关方法 一

字符串的比较相关方法对于基本类型来说,== 是进行数值比较。对于引用类型来说,== 是进行地址值 比较。如果需字符串的内容比较,两个方法;1.public boolean equals(object obj);equals – 等于 object-- 对象备注 任何对象都能用object进行接收。参数可以是对象,只有参数是一个字符串并且内容相同才会true,否则返回值false。例子;System.out.println(str1.equals(str2));注意 equals方法具

2020-12-30 22:56:03 67

原创 java中字符串的常量池

常量池简单介绍Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池。我们知道String是java中比较特殊的类,我们可以使用new运算符创建String对象,也可以用双引号(”“)创建字串对象。程序当中直接写上双引号字符串,就在字符串常量池中。下图,清楚地解释了如何在Java堆内存中维护字符串常量池,以及当我们使用不同的方式创建字符串时在堆内存中如何存放。之所以有字符串常量池,是因为String在Java中是不可变(immutable)的,它是String in

2020-12-30 20:55:15 160

原创 java 字符串概述与特点

字符串 StringString类代表字符串,java程序中的所有字符串字面值(如;“abc”)都作为此类的实例实现。其实是说;程序中所有的双引号字符串,都是String类的对象。字符串特点;1.字符串内容永不可变(重点)。2.正是因为字符串不可改变,所以字符串是可以共享的。3.字符串效果上相当于 char [ ] 字符数组,但是底层原理是byte [ ] 字节数组。创建字符串的常见 3+1 中方式三种构造方法,一种直接创建。第一种构造方法public String(); 创建一个空白字符

2020-12-30 20:33:30 220 2

原创 java 中 ArrayList 集合概述和基本使用

ArrayListArrayList – 数组列表(翻译)ArrayList 是最为简单的一种集合。(首字母大写,这是一个类)。跟数组的区别数组的长度不可以发生改变。但是ArrayList集合的长度是可以随意变化的。对于ArrayList来说,有一个尖括号 代表泛型。泛型—也就是装在集合当中的所有元素,全部都是统一的类型。== 注意 ;== 泛型只能是引用类型,不能是基本类型。例子;ArrayList list = new ArrayList<>();意思是;创建了一个Arr

2020-12-30 20:04:34 211

原创 java中 匿名对象的说明及Random类概述和基本使用

Anonymous–匿名创建对象的标准格式;类名称 对象名 = new 类名称();匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。格式;new 类名称();new Test();这就是一个匿名对象,但是,在Java一般不这么使用,因为没有意义,因为这样写完后,由于没有对该对象进行引用,所以马上就被内存回收了,所以没有实际意义。注意事项匿名对象只能是用唯一一次,下次再使用不得不在创建一个新对象。使用建议; 如果确定有一个对象只需要使用为一次,就可以用匿名对象。匿名对象作为方法

2020-12-30 19:30:44 138

原创 java 中的Scanner类

什么是Scanner类?Scanner类–一个可以解析基本类型和字符串的简单文本扫描器。例如;一下代码使用户能够从 System.In 中读取一个数。Scanner sc = new Scanner(System.In) ;int i = sc.nextInt();备注;System.In 系统输入指的是通过键盘录入数据。什么叫打印输出---是程序当中的数据在屏幕当中显示出。什么叫键盘输入—是通过双手打字把数据从键盘录入程序中。引用类型的一般使用步骤1.导包你想用的这个人,他在

2020-12-30 18:54:26 352 1

原创 java API的概述与使用步骤

什么是java API?API(APPlication programming Interface)-- 应用程序编程接口。java API 是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习java提供的类,并得知如何使用它们。使用步骤;1.打开文档2.点击显示,找到索引,看到输入框3.你要找谁?在输入框里输入,然后回车4.看包。java.lang

2020-12-30 18:30:04 161

原创 java 中的构造方法及一个标准的类

构造方法构造方法–是专门用来创建对象的方法,当我们通过关键字 new 来创建对象时,其实是在调用构造方法。格式;public 类名称 (参数类型 参数名称){方法体}this()是调用本类不带参构造方法;super()是调用父类不带参的构造方法;注意事项;1.构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样。public class A{ int i=0; public A(){ i=2; } public A(int i){ this.i=i;

2020-12-30 18:17:54 86

原创 java 中 this关键词的用法

this 关键词当方法中的局部变量和类的成员变量重名时,根据就近原则,优先使用局部变量。如果需要访问本类当中的成员变量,需要使用== this 关键词== 。this 关键词使用格式;this.成员变量** “通过谁调用的方法,谁就是this” **一、this.属性名this – 主要是局部变量和成员变量重名的时候 有分别成员变量的作用。public class A{private String name;private int id;public A(String name){t

2020-12-30 17:52:49 155

原创 java中 private关键字的作用及使用方法

private先看一个程序;创建的类;package demo04private;public class person { String name; int age; public void show(){ System.out.println("我叫"+name+"我几年"+age+"岁了"); }}创建的对象;public class demo04person { public static void main(String

2020-12-13 15:24:53 28663 5

原创 java中的成员变量和局部变量的区别及面向对象三大特征

局部变量和成员变量1.定义的位置不一样 【重点】局部变量;在方法的内部成员变量;在方法的外部,直接写在类当中。2.作用范围不一样 【重点】局部变量;只有方法当中才可以使用,除了方法不能用。成员变量;整个类都可以通用。3.默认值不一样 【重点】局部变量;没有默认值,如果想使用,必须手动复制。成员变量;如果没有赋值,会有默认值,规则和数组一样。4.内存位置不一样【了解】局部变量;位于栈内存。成员变量;位于堆内存。5.生命周期不一样 【了解】局部变量;随着方法进栈而产生,随着方法出栈而

2020-12-11 21:15:43 258

原创 java 类的定义及对象的创建

类的定义事物与类的对比现实世界的一类事物;属性 ;事物的状态信息行为 ;事物能够做什么java中用class描述事物也是入此;成员变量;对应事物的属性。成员方法;对应事物的行为。定义一个类,用来模拟“学生”事务,其中就有两个组成部分。属性(是什么);姓名,年龄等行为(能做什么);吃饭,睡觉,学习等。将上面写的对应到java类中。成员变量(属性);数据类型 变量名称String.name // 姓名int age // 年龄成员方法(行为);public void e

2020-12-10 19:54:13 658 1

原创 java中类和对象的关系

什么是类;类–是一组相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。现实中,描述一类事物;属性 ;就该是事物的状态信息。行为 ;就是该事物能做什么。举例,小猫;属性;名字,体重,颜色等…行为;走,跑,条…什么是对象;对象–是一类事物的具体体现,对象是类的实例(对象并不是找个女朋友),必然具备该事物的属性和行为。现实中,一类事物的实例;举例,一只小猫;属性;名字,体重,颜色等…行为;走,跑,条…类和对象的关系;类是一例事物的描述;抽

2020-12-10 18:31:45 453 1

原创 java 面向对象的思想概述以及面向过程思想

面向过程概述-当需要实现一些功能的时候,每个具体的步骤都要亲力亲为,详细处理每个细节。面向对象概述-当需要实现一些功能的时候,不关心具体步骤,而是找一个已经具有该功能的人,来帮我做事。(偷懒 哈哈哈)1.来一个面向过程的数组打印输出;public class shuzu { public static void main(String[] args) { int[] arrayA = {1,2,3,4,5,6,7,8,9}; // 要求打印格式位 1,2

2020-12-10 13:28:55 104

原创 java 中获取数组的长度及数组的遍历输出

如何输出数组的长度?假如一个静态初始化的数组,数组里面的参数很多,数不过来,怎么办?例子;获取数组长度的格式;数组名称.lengthpublic class shuzu { public static void main(String[] args) { int[] arrayA = new int[3];//动态初始化 int[] arrayb = {1,2,3,4,5,6,7,8,9,5,6,4,6,5,9,4,6,4,6,6};

2020-12-09 17:37:07 3882

原创 java 中的内存划分

java的内存需要划分成为五个部分1.栈(Stack) ;存放的都是方法中的局部变量。方法的运行一等要在栈当中运行。局部变量;方法的参数,或者方法{}内部的变量。作用域;一旦超出作用域,立刻从占内存当中消失。2.堆(Heap);凡是new出来的东西,都在堆当中。堆内存里面的东西都有一个地址值;16进制堆内存里的东西,都有默认值,规则如下;1.如果是整数类型,那么默认 0。2.如果是浮点类型,那么默认0.0.3.如果是字符类型,那么默认 ‘\u0000’ (后边四位是16进制)。4.如果是

2020-12-08 20:52:34 82

原创 java 访问数组元素进行获取

java 中直接打印静态初始化的数组 int[] arrayC = new int[] {1,2,3,4,5}; //int[] arrayd = {1,2,3,4,5}; System.out.println(arrayC);enn…出来一堆乱码?直接打印数组名称,得到的是数组相应的内存地址-哈希值。输出的乱码-大括号代表数组,大写 I 表示 int型 @后边的是进制数访问数组元素的格式数组名称[索引值]索引值就是一个int数字,代表数组中元素的编

2020-12-08 19:54:46 6762

原创 java数组的概念

java数组java的数组中,数组是一种容器,可以同时存放多个数据值。数组的特点;1.数组是一种引用数据类型。2.数组当中的多个数据类型必须统一。3.数组的长度在程序运行期间不可改变。使用数组1 .数组的初始化(在内存当值那个创建一个数组,并且向其中赋予一些默认值)两种常见的初始化方式;1.动态初始化(指定长度)2.静态初始化(指定内容)动态初始化数组格式;数据类型 [ ] 数组名称 = new 数据类型 [ 数组长度] ;解析含义;左侧数据类型 也就是数组当中保存的数据,

2020-12-07 21:27:10 398 1

空空如也

空空如也

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

TA关注的人

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