单片机中的一些寄存器属于cpu还是IRAM 问题:单片机8051中的一些寄存器到底算CPU的还是RAM的?请高手指点,像累加器DPTR,A,PSW等一些寄存器是属于CPU的,但书上又说他们都属于RAM中的特殊功能寄存器(SFR),这是什么道理?另外,存储器和寄存器不是两个功能,结构都不同的东西么?为什么RAM中存在许多寄存器组,即二者在此是相同的?完整解答出自 https://www.zhihu.com/question/52
STM32的时钟分割 TIM_TimeBaseStructure.TIM_ClockDivision ;//时钟分割TIMx_CCMR1 寄存器Fck_int是定时器的输入频率(TIMxCLK),一般是 72Mhz,而 则是根据 TIMx_CR1 的 CKD[1:0]的设置来确定的,如果 CKD[1:0]设置为 00,那么 = 。 N 值就是滤波长度,举个简单的例子:假设 IC1F[3:0]=0011,并设置 IC1 ...
Stm32 产生pwm的频率解惑? 问题一://TIM2预分频设置:1MHZ,APB1分频系数2,输入到TIM3时钟为36MHzx2 = 72MHz TIM_PrescalerConfig(TIM2,71, TIM_PSCReloadMode_Immediate); void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCRel...
extern关键字详解 我确定这篇文章对c语言的初学者会有很大的帮助,因为这将使他们更好更熟练的使用c语言。所以就让我先来说说extern关键字在变量和函数上的应用。最基本的extern关键字扩展了变量和函数的可见度。这可能就是它为什么命名为extern的原因。几乎所有人都知道声明和定义变量(函数)的意义,但是为了这篇文章的完整性,我想弄清楚它们。声明一个变量(函数)只是表明这个变量(函数)存在于程序的某个地方,并没...
STM32 SysTick滴答时钟分析 利用系统sysTick()时钟产生延时函数Delay_ms()的分析SysTick 定时器, SysTick 是一个 24 位的倒计数定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在 SysTick 控制及状态寄存器中的使能位清除,就永不停息。 sysTick时钟来自系统时钟的8倍频。一般作用于操作系统的节拍,此处我们可以依据此定时器作为延时函数...
java IO ——字节流 Java字节流包括:基类、文件流、过滤流、标准流、内存读写流、顺序输出流等 (向内存中写入就是输入流,从内存中写出就是输出流) 基类:InputStream 和 OutputStream 字节流主要操作byte类型数据,以byte数组为准,java 中每一种字节流的基本功能依赖于基本类 InputStream 和 Outputstream,他们是抽象类,不能直接使用。字节流能处理所有类型的数据(如...
集合框架 集合框架有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速地插入或者删除有关元素。还有一些集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。Collection接口定义了一系列方法——赠删改查List 接口与 ArrayList 类与inkedList类List 是一个接口,不能实例化,需要一个具体类来实现实例化。List 集合中...
用接口声明引用变量的作用 面向接口编程:2, 定义好了引用变量以后, 要让它引用一个对象, 这个对象就应该是实现了那个接口的类的实例了! 随便一个类, 只要它继承实现了那个接口, 那么它的实例都可以在这里被引用.3, 方法的返回类型也是要定义为接口类型, 因为, 你要记住:我们这个方法是需要返回一个有特定功能的对象! 同理, 方法的参数的类型也是如此!所谓面向接口编程, 就是说在定义引用变量的时候, 用接口来定义.补充...
java的聚合类 聚合关系概念: 聚合是整体和个体之间的关系, 处于 `聚合关系` 的两个类生命周期不同步, 整体与部分之间是可分离的,可以有各自的生命周期 与`组合关系`相比, 组合强调的是'包含', 聚合强调的是'拥有'例子: 母亲可以有自己的孩子1234567// 母亲class Mother { // 母亲可以有自己孩子, 但是不确定什么时候生 private ...
抽象类与接口 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。一、抽象类我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽...
Java中创建对象的5种方式 作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码使用new关键字} → 调用了构造函数使用Class类的newInstance方法} → 调用了构造函数使用Constructor类的newInstance方法} → 调用了构造函数...
理解java的三大特性之多态 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开: 所谓多态就...
理解java的三大特性之继承 在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情。在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一---继承。继承 在讲解之前我们先看一个例子,该例子是前篇博文(j...
理解java的三大特性之封装 java提高篇(一)-----理解java的三大特性之封装 从大二接触java开始,到现在也差不多三个年头了。从最基础的HTML、CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过、失落过、寂寞过。虽然是半道出家但是经过自己的努力也算是完成了“学业”。期间参加过培训机构,但是极其不喜欢那种培训方式,于是毅然的放弃了选择自学(可怜我出了6000块钱啊),虽然自学途中苦很多,但是乐...
JAVA中BitSet使用 JAVA中BitSet JAVA中BitSet就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用bit位上的1或0来表示;一个bit具有2个值:0和1,正好可以用来表示false和true。对于判断“数据是否存在”的场景,我们通常使用HashMap来存储,不过hashmap这个数据结构KEY和Value的保存需要消耗较多的内存,不适合保存较多的数据,即大数据场景;比如在有10亿...