Quick Start
新建博文命令
1hexo new 这是一篇新的博文
More info: Writing
新建标签页命令
1hexo new page 新建的标签页
More info: Writing
本地预览
1hexo cl && hexo s
More info: Server
推送更新上线
1hexo cl && hexo g && hexo d
More info: Generating
More info: Deployment
指导文档 文档
经过了刚刚原理部分的学习, 你已经对这个陌生的单片机有了一定的信心,
那么接下来我们开始实操吧!
注意观察, 这是一篇结构较为严谨的博客, 你可以从旁边的目录看到每一个
Step 之后所有的实验篇, 将遵循
Step X - 对应说明
具体步骤 1
步骤的解释 1
步骤的解释 2
具体步骤 2
希望这样的结构严谨的文章对你的学习会有帮助 !
这一部分是最基础的构建整个工程的部分.
今后你的每个新工程都要进行如下的步骤来进行相应的配置
Step 1 - 芯片选型
打开 CubeMX
搜索并选择对应型号的 MCU 芯片
Step2 - 工程配置
配置复位时钟控制器 (RCC) - Reset Clock Control
配置成晶振 - Crystal/ceramic resonator
注意观察, 点选之后,
你的页面发生了怎样的变化?(说明了什么?)
配置时钟树 - Clock Configuration
HSE 一般设置为 8MHz >
通过开发板晶振的频率来设置 HSE 的频率,
这里我们采用的芯片(F103C8T6)
梯形框框 - PLL Sou ...
这个 BNBU 大一的 OOP
Final 到底会考啥?
我做了一个课件的 review 进行了一些知识点的整理
#
章节
核心考点
1
Intro to OOP
类 vs 对象、class diagram、JVM/字节码、JDK/JRE
2
Java Essentials
基本类型、运算符、控制流、String、方法、Scanner
3
Creating Java Classes (+Cont)
字段/方法、构造器、this、封装、static、重载
4
Inheritance (+Cont)
extends、super、覆盖、多态、Object、final
5
Abstract & Interfaces
抽象类、interface、抽象 vs 接口的取舍
6
Arrays & Generics
数组、二维数组、泛型类/方法、ArrayList
7
Exception Handling
try/catch/finally、checked vs
unchecked、throw/throws
8
IO(DB 部分跳过)
...
欢迎来到 RM 电控, 这是一个新手向教程.
如有任何错误或者建议可以在文章下方的评论区留言,
收到反馈后会已邮件的方式发送通知
1.理论知识 - 基本硬件
MCU(Microcontroller
Unit) - 微型控制单元
系统板的大脑, 相当于主机上的 CPU - 中央处理器
一般 3.3v 供电: 低电平约为 0v; 高电平约为 3.3v
更多有关STM32命名规则
RCC(Reset Clock Control) -
时钟
时钟是 STM32 单片机意见各种设备的心跳, 不可缺少
四种类型:
HSI HSE LSI
LSE
低速通常用于实时时钟 - RTC(Real Time Clock)等
高速通常用于定时器, UART, ADC 等多种外设
高低速
内外部
HS(HighSpeed) - 高速
I(Internal) - 内部
LS(LowSpeed) - 低速
E(External) - 外部
两两相互组合便得到了上述的四种类型
三种模式:
Disable: 不启用外部时钟, 会导致自动-强制启用 MCU
的内部时钟( ...
类加载
每个类的类加载有且只发生一次
类加载: 就是 JVM 把 .class
文件读到内存里,并完成静态字段(成员变量)初始化和静态代码块执行,让这个类准备好被使用
有一下几种情况会触发类加载
new一个新对象
调用类的静态成员变量(静态字段)或静态代码块
子类被调用要先加载父类
懒加载:
如果在程序一开始运行的时候就把所有的类都全部加载一遍,
这太耗费资源了, JVM 对于类加载是能拖就拖,
直到出现了上述的情况让他不得不进行类加载
加载顺序
加载的顺序如下表所示
步骤
内容
时机
1
父类静态字段 + 父类静态代码块
类加载时,只执行一次
2
子类静态字段 + 子类静态代码块
类加载时,只执行一次
3
父类实例字段 + 父类实例代码块
每次 new 对象时
4
父类构造方法
每次 new 对象时
5
子类实例字段 + 子类实例代码块
每次 new 对象时
6
子类构造方法
每次 new 对象时
举个例子 123456789101112131415161718192021222324252627282930313233343 ...
抽象类和抽象方法
介绍
在实际的写代码过程中,
我们常常遇到子类展现出多态导致父类的方法被’‘掩盖’’的情况
12345public class Animal { public void name() { System.out.println("父类的方法"); }}
12345public class Dog { public void name() { System.out.println("子类 Dog 的方法"); }}
12345public class Cat { public void name() { System.out.println("子类 Cat 的方法"); }}
123456789public class Main { public static void main(String[] args) { Animal a = new Dog(); Animal b = new Cat(); a.name(); b.name(); }}
上面就是一个例子, 在调用 name()
方法的时候子类表现出多态, 把父类原本的方法”掩盖了”
那么我们 ...
什么是动态绑定和静态绑定?
绑定(Build)
先说什么是绑定
绑定(Binding)就是:方法调用和方法实现之间建立联系的过程。
简单来说但你调用a.eat()
这个方法的时候,程序要知道你具体调用的是哪段代码
这个寻找具体调用的段代码的过程,就叫做绑定
一个程序想要”跑”起来,需要经过两个阶段,先编译后运行
在编译过程中就确认了具体用哪个方法就叫静态绑定
在运行过程中才确认用哪个方法就叫动态绑定
静态绑定
程序在编译阶段就能确定使用那个方法
类型:
通过下面关键词修饰的方法是静态的,子类无法对父类的方法进行重写
static 方法,静态方法
private 方法,私有方法
final 方法,被 final 修饰不能被重写
构造方法
通过 super().xxx 调用的方法
为什么这些是静态绑定?
因为它们都有一个共同点:不能被子类重写,或者调用方式跟对象的实际类型无关。既然不存在”多个版本”的可能性,编译器自然在编译时就能拍板。
123456789101112131415161718class Animal { public static void inf ...
认真看这句代码 Animal a = new Dog();
一个对象 a
a 的引用是 Animal
用来创建这个 a 对象的是 Dog()
在java 中引用 ≠ 对象 Animal
是一个引用他就像一个遥控器一样,指向 a 这个对象,但是这个 a
对象实际的东西还是 Dog.只是 Animal 决定了 a 对象能用什么方法
在这一句话中有两个关键点,我们逐一比对 1. a 对象实际的东西还是 Dog 2.
Animal 决定了 a 对象能用什么方法
1. a 对象实际的东西还是 Dog
假设我们有一段这样的代码 1234567891011121314151617181920212223242526class Animal { // 父类 Animal public void eat() { System.out.println("Animal eat something"); }}class Dog extends Animal { // 子类 Dog public void eat() { System.out.println("Dog eat something"); ...
对于刚刚学习 java
的小白来说,初次面对对象的时候难免会觉得有些不知所措。在这篇文章中我将写下我自己对于继承,多态,向上转型,向下转型的一些理解
希望我的文章对你更深刻的理解 java 的这些概念能有帮助
继承
在生活中我们会说继承家产,继承的意思就是孩子能拥有父母的遗产
在面对对象语言中也有两个概念父类,子类.分别就是父亲和孩子
123456789101112131415class Animal { // 父类 Animal public void eat() { System.out.println("Animal eat something"); }}class Dog extends Animal { // 子类 Dog}public class Main { public static void main(String[] args) { Dog a = new Dog(); a.eat(); // 直接输出Animal eat something }} 在上面这个示例中
狗是一种动物 Dog
是子类(孩子), Animal是父类(父亲) 在 java 中我们 ...
将 Obsidian 接入我的 Blog。这是第一篇的测试 Mac Android 1















