摘要:
为了使工程更加有条理,我们把 LED 灯控制相关的代码独立分开存储,方便以后移植。在“工程模板”之上新建“ bsp_led.c”及“ bsp_led.h”文件,其中的“ bsp”即 BoardSupport Packet 的缩写(板级支持包),这些文件也可根据您的喜好命名,这些文件不属于STM32 阅读全文
摘要:
.段寄存器 8086CPU在访问内存时是要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。段地址存放在段寄存器中,8086CPU有4个段寄存器:CS, DS, SS,ES。 .CS和IP CS和IP寄存器,指示了CPU当前要读取指令的地址。CS为段寄存器,IP为指令指针寄存器。 阅读全文
摘要:
版本号可从 MDK 软件的“ Help-->About uVision”选项中查询到。 然后对应添加库文件。 把所有文件添加进入之后,编译工程,会报很多错误。 那是因为我们的某个头文件里面有条件编译,但是我们现在没有开启,用ST的建议就是,为了不改动工程文件,我们可以在编译器上定义需要的宏。在在此之 阅读全文
该文被密码保护。 阅读全文
摘要:
.16位结构的CPU 概括地讲,16位结构(16位机,字长为16位等常见说法,与16位结构的含义相同)描述了一个CPU具有下面几方面结构特性: 1.运算器一次最多可以处理16位的数据结构 2.寄存器的最大宽度为16位 3.寄存器和运算器之间的通路为16位 .8086CPU给出物理地址的方法 8086 阅读全文
摘要:
因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的 Cortex 微控制器软件 的兼容性问题, ARM 与芯片厂商建立了 CMSIS 标准(CortexMicroController 阅读全文
摘要:
其实在我使用最多的文件操作中,还是喜欢格式化IO控制的方式,简单方便易理解。 看了fprintf函数之后,肯定不能忘了fscanf函数啊: 阅读全文
摘要:
按行读写文件需要用到fputs和fgets函数,feof函数可以检测是否到文件末尾,如果是,返回一个非零值,如果没有达到末尾,返回零值。 阅读全文
摘要:
一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于cpu内部来说是外部总线。内部总线实现内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。简单的说,在CPU内部: .运算器进行信息处理 .寄存器进行信息存储 .控制器控制各种器件进行工 阅读全文
摘要:
stm32的编程和stc89c51还是存在着很多思想上的不同的,在51单片机中,我们点亮LED灯,只用给对应IO高低电平就可以了,而stm32中,就一个简单的GPIO,我们也需要配置好几个寄存器,而且,就算配置好GPIO寄存器,我们还必须有一步不能缺少的操作,那就是开启对应GPIO的时钟。在stm3 阅读全文
摘要:
.存储单元 存储器被分成若干个存储单元,每个存储单元从0开始顺序编号。电子计算机的最小信息单位是bit。8个bit组成一个Byte(虽然现在一个字节可能不是8位,有宽字符出现了,但是一般我们的机器都是8位1字节的),也就是通常所说的字节。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一 阅读全文
摘要:
对学习C语言而言,文件操作属于横向学习,而之前的指针属于纵向学习。所谓横向学习,就是快速掌握API,了解使用就行,纵向学习则不同,纵向学习需要深入地理解原理。但是在linux系统编程的学习中,文件操作属于纵向学习,因为在Linux设计哲学中是一切皆文件的思想。 第一个API函数,fopen 第二个A 阅读全文
摘要:
在点亮LED之前,我们需要具备一些基础知识: GPIO—general purpose intput output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 1、GPIO跟引脚有什么区别? 2 阅读全文
摘要:
说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。现在我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能。这个芯片就是 阅读全文
摘要:
直接用“=”操作符,是浅拷贝,要实现深拷贝,更改代码如下: 这样深拷贝之后,就需要释放两次内存。在以后的业务逻辑中,须根据需要选择使用深拷贝还是浅拷贝,但我们要知道,编译的“=”(赋值)操作符是浅拷贝。 阅读全文