摘要: //利用已有的SysTick配置,读取计数判断延迟 void delay_us(uint32_t udelay) { uint32_t startval,tickn,delays,wait; startval = SysTick->VAL; tickn = HAL_GetTick(); //sysc 阅读全文
posted @ 2020-06-21 14:57 年小猫 阅读(2520) 评论(0) 推荐(1) 编辑
摘要: #include "stdarg.h" void myPrintf(USART_TypeDef* USARTx , char *fmt,...) { char p_Buff[100] , i; va_list ap; va_start(ap,fmt); vsprintf(p_Buff,fmt,ap) 阅读全文
posted @ 2020-01-20 10:10 年小猫 阅读(1550) 评论(0) 推荐(0) 编辑
摘要: const unsigned int PT100_Sheet0_250[30]= { 10000,10390,10779,11167,11554,11940,12324,12707,13089,13470, //0-90 13850,14229,14606,14982,15358,15731,16104,16476,16846,17216, //100-190 17... 阅读全文
posted @ 2019-10-26 21:40 年小猫 阅读(1599) 评论(0) 推荐(0) 编辑
摘要: 魔棒配置卡中按如下配置 阅读全文
posted @ 2019-10-07 09:45 年小猫 阅读(1801) 评论(0) 推荐(0) 编辑
摘要: 1 sbit HC138_CH1 = P2^4; 2 sbit HC138_CH2 = P2^5; 3 sbit HC138_CH3 = P2^6; 4 5 void Decoding (unsigned char m) 6 { 7 m =~ m; 8 HC138_CH1 = m&0x01; 9 HC138_CH2 = (m&0x02)>>1; 10 HC138_CH3 = (m&0x04)>>2 阅读全文
posted @ 2019-09-18 22:30 年小猫 阅读(354) 评论(0) 推荐(0) 编辑
摘要: STM32Cude未选择Serial Wire,可能会使得无法使用stlink或jlink无法下载 解决方法其实很简单,按住复位键在keil中点击下载,没有复位键的话,用镊子短接复位电容两端,如果失败就多试几次,反正我试了十几次才好。 阅读全文
posted @ 2019-09-06 17:30 年小猫 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: startActivityForResult方法是android中活动启动的一种方法,这个方法接收两个参数,第一个是Intent ,另一个是请求码,请求码只要是唯一值就可以。 这个方法可以在活动销毁之后,返回一个结果给上一个活动。 例如:活动A打开了活动B,那么在活动B销毁之后,可以返回一个结果给活 阅读全文
posted @ 2019-08-29 18:30 年小猫 阅读(5950) 评论(0) 推荐(1) 编辑
摘要: 在AndroidManifest.xml文件中给需要设置的活动,加上 intent-filter 标签中的语句。"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"同时设置才有效果注意,给主活动指定的 label 不仅会成为标 阅读全文
posted @ 2019-08-29 17:24 年小猫 阅读(837) 评论(0) 推荐(0) 编辑
摘要: Android系统架构 Linux内核层 Linux内核层为Android设备各种硬件提供底层驱动。 系统运行库层 通过一些C/C++库为Androin系统提供主要特性支持,以及Java核心库 应用框架层 提供构建应用时的各种API 应用层 安装的各种应用 四大组件 活动(Activity) And 阅读全文
posted @ 2019-08-29 16:39 年小猫 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 枚举类 在Java中,我们可以通过static final来定义常量,无论是int常量还是String常量,使用这些常量来表示一组枚举值的时候,有一个严重的问题就是,编译器无法检查每个值的合理性。为了让编译器能自动检查某个值在枚举的集合内,并且,不同用途的枚举需要不同的类型来标记,不能混用,我们可以使用enum来定义枚举类。 public class Main { public static vo 阅读全文
posted @ 2019-08-27 12:21 年小猫 阅读(263) 评论(0) 推荐(0) 编辑
摘要: JavaBean JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。 JavaBean主要用来传递数据,即把一组数据组合成一个JavaBean便于传输。此外,JavaBean可以方便地被IDE工具分析,生成读写属性的代码,主要用在图形界面的可视化设计中。 public cla 阅读全文
posted @ 2019-08-27 12:21 年小猫 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 包装类型 Java的数据类型分两种: 基本类型:byte,short,int,long,boolean,float,double,char 引用类型:所有class和interface类型 引用类型可以赋值为null,表示空,但基本类型不能赋值为null。 Java核心库为每种基本类型都提供了对应的包装类型 基本类型 对应的引用类型 boolean java.lang.Boolean byte j 阅读全文
posted @ 2019-08-27 12:19 年小猫 阅读(195) 评论(0) 推荐(0) 编辑
摘要: StringBuilder Java编译器对String做了特殊处理,可以直接用+拼接字符串,但在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。 String s = ""; for (int i = 0; i < 1000; i++) { s = s + "," + i; } Java标准库提供了StringBuil 阅读全文
posted @ 2019-08-27 12:18 年小猫 阅读(937) 评论(0) 推荐(0) 编辑
摘要: StringJava的String和char在内存中总是以Unicode编码表示。 在Java中,String是一个引用类型,它本身也是一个class。Java编译器对String有特殊处理,即可以直接用"..."来表示一个字符串,字符串在String内部是通过一个char[]数组表示的。Java字符串的一个重要特点就是字符串不可变。这种不可变性是通过内部的private final char[] 阅读全文
posted @ 2019-08-27 12:14 年小猫 阅读(220) 评论(0) 推荐(0) 编辑
摘要: classpath classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class,一般情况下无需设置classpath!默认的当前目录.于绝大多数情况都够用了。 jar包 jar包可以把package组织的目录层级,以及各个目录下的所有文件(包括.class文件和其他文件)都打成一个jar文件。 jar包实际上就是一个zip格式的压缩文件,而jar包相当于目录。在资源管理器中, 阅读全文
posted @ 2019-08-27 12:00 年小猫 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 包https://www.jianshu.com/p/c798a019f2ec Java定义了一种名字空间,称之为包:package,用于解决名字冲突。一个类总是属于某个包,类名只是一个简写,真正的完整类名是包名.类名。 例如: 小明的Person类存放在包ming下面,因此,完整类名是ming.Person; 小红的Person类存放在包hong下面,因此,完整类名是hong.Person; 小 阅读全文
posted @ 2019-08-27 11:59 年小猫 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 静态字段和静态方法 在一个class中定义的字段,称为实例字段。每个实例都有独立的字段,各个实例的同名字段互不影响。用static修饰的字段,称为静态字段:static field。 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有该类的实例或继承该类的实例都会共享该字段,无论修改哪个实例的静态字段,所有实例的静态字段都被修改了。 public class M 阅读全文
posted @ 2019-08-27 11:58 年小猫 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 抽象类 如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。这个抽象方法无法执行,因此这个类也必须申明为抽象类(abstract class) 抽象类本身被设计是只能用于被继承,强迫子类实现其定义的抽象方法。因此,抽象方法实际上相当于定义了“规范”。 //Person类定义了抽象方法run(),那么,在实现子类Student的时候,就必须覆写ru 阅读全文
posted @ 2019-08-27 11:51 年小猫 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 覆写(Override) 在继承关系中,子类如果定义了一个与父类方法签名( 方法的名称和参数类型)完全相同的方法,被称为覆写(Override)。 Override(覆写)和 Overload(重载)不同的是,如果方法签名不同,就是Overload,Overload是一个新方法;如果方法签名相同,返回值也相同,就是Override。 注意:方法名相同,方法参数相同,但方法返回值不同,也是不同的方... 阅读全文
posted @ 2019-08-27 11:50 年小猫 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 继承 继承是面向对象编程中非常强大的一种机制,它可以复用代码。当让子类从父类继承时,子类就获得了父类的所有功能。 Java使用extends关键字来实现继承: class Person { private String name; private int age; public String getName() {...} public void setNam... 阅读全文
posted @ 2019-08-27 11:49 年小猫 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 方法是java语言中非常基本的一个组成。 一个class可以包含多个field但是,直接把field用public暴露给外部可能会破坏封装性,使用private修饰field,可以拒绝外部访问。 class Person { private String name; private int age; } 把field从public改成private,外部代码不能访问这些field,需要使用方法(m 阅读全文
posted @ 2019-08-27 11:48 年小猫 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。 现实世界中,我们定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以,“人”可以定义为一个类(class),而具体的人则是实例(instance): 现实世界 计算机模型 Java代码 人 类 / class class Person { } 小明 实例 / ming Person 阅读全文
posted @ 2019-08-27 11:47 年小猫 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 遍历数组 数组最常见的一个操作就是遍历。数组的每个元素都可以通过索引来访问,因此,使用标准的for循环可以完成一个数组的遍历。 int[] ns = { 1, 4, 9, 16, 25 }; for (int i=0; i<ns.length; i++) { int n = ns[i]; System.out.println(n); } 为了实现for循环遍历,初始条件为i=0,因为索引总是从0开 阅读全文
posted @ 2019-08-27 11:46 年小猫 阅读(150) 评论(0) 推荐(0) 编辑
摘要: while循环 循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环。 Java提供的while条件循环。它的基本用法是 while (条件表达式) { 循环语句 } while循环在每次循环开始前,首先判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳出while循环,继续往下执行。 例如: //累加1到100 阅读全文
posted @ 2019-08-27 11:45 年小猫 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 输出 System.out.println() 可以向屏幕输出一些内容。 println是print line的缩写,表示输出并换行。如果输出后不想换行,可以用print() System.out.print("A,"); System.out.print("B,"); System.out.print("C."); System.out.println();//换行 System.out.pri 阅读全文
posted @ 2019-08-27 11:44 年小猫 阅读(305) 评论(0) 推荐(0) 编辑
摘要: if判断 在Java程序中,如果要根据条件来决定是否执行某一段代码,就需要if语句 if(条件){//语句块1 //条件满足执行此语句块1 }else{//语句块2 //条件不满足时执行 else 下的语句块2 //else 不是必须的 //当不存在 else ,如果条件不满足,将会跳过语句块1 } 注意:不建议省略 {} 串联if-else int n = 100; if (n >= 60) { 阅读全文
posted @ 2019-08-27 11:44 年小猫 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 数组类型 如果我们有一组类型相同的变量,例如,5位同学的成绩,可以这么写: int n1 = 68; int n2 = 79; int n3 = 91; int n4 = 85; int n5 = 62; 但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联。 那么可以使用数组来表示“一组”int类型,所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的 阅读全文
posted @ 2019-08-27 11:43 年小猫 阅读(229) 评论(0) 推荐(0) 编辑
摘要: String s1 = "Hello"; String s2 = "world"; String s = s1 + " " + s2 + "!"; //Hello world! 字符类型 字符类型char是基本数据类型,它是character的缩写。一个char保存一个Unicode字符: char c1 = 'A'; char c2 = '中'; 因为Java在内存中总是使用Unicode表示字 阅读全文
posted @ 2019-08-27 11:42 年小猫 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 布尔运算 对于布尔类型 boolean,永远只有 true 和 false 两个值,即 真 和 假。 布尔运算是一种关系运算,包括 :比较 、与、或、非 四类 运算等级从高到低 ! >,>=,<,<= ==,!= && || boolean isGreater = 5 > 3; // true int age = 12; boolean isZero = age == 0; // false bo 阅读全文
posted @ 2019-08-27 11:41 年小猫 阅读(737) 评论(0) 推荐(0) 编辑
摘要: 浮点数运算 浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。 Java的浮点数完全遵循IEEE-754标准,这也是绝大多数计算机平台都支持的浮点数标准表示方法。 浮点数表示的范围大,但是,浮点数常常无法精确表示,会在运算过程中产生误差。 double x = 1.0 / 10;// 0.1 double y = 1 - 9.0 / 10;// 0.099999999 阅读全文
posted @ 2019-08-27 11:40 年小猫 阅读(422) 评论(0) 推荐(0) 编辑