stm32-基础day02
stm32-基础day02
MCU
单片机(单核)
SOC
system on chip(多核 多线程)
无论是MCU还是SOC都可以组成一个完整的计算机系统。
STM32F103 = cpu + 内存 + 硬盘 + 外设
总线
CPU和各个外设是通过总线(bus)进行连接的。
什么是总线?
说到总线就要提到计算机的体系结构,我们编写编译好的代码都是放在硬盘中的,代码中包括一堆的指令和数据,cpu就是执行这些指令的部件。但是cpu不能直接从硬盘中读取指令和数据,因为cpu和硬盘(flash)的主频频率相差太大,如果直接进行传输只能按照最低的频率,这样的效率就会大大下降。
冯诺依曼体系结构
内存(memory)就可以解决这个问题,我们将硬盘中的指令和数据都放到内存中的一块区域。cpu也要从相同的区域读写指令,cpu就要区分哪些是指令,哪些是数据。cpu本身就是一个寄存器堆。虽然cpu不仅要去写数据,而且要区分内存中的指令和数据,但是由于内存的访问频率很高,总体的访问速率有很大的提升。这种体系结构就是冯诺依曼体系结构,其中数据交互的先就是总线,而冯诺依曼体系结构取数据和取指令都是同一条总线。
哈佛体系结构
哈佛体系结构取数据和取指令用的是不同的总线。
总线的分类
总线分为三类:数据总线、地址总线、控制总线 简称为三总线。
例:在
0x12341234
这个地址放0x100
数据的过程硬件帮助我们把数据放到地址上进行传输,其中
0x100
放到了数据总线上进行传输,0x12341234
则放到地址总线进行传输,控制总线就是控制将数据放到地址线上。
AHB总线
AHB总线也是三总线,是内部的高速总线,cpu就是通过AHB访问各种外设。其中有AHB1和AHB2。
和AHB一起的还有APB1和APB2,它们也是三总线,叫做外部总线。
具体可以分析查看STM32F103xx框架图:
GPIO
在框架图中可以看出,在STM32中GPIO资源非常丰富,一共有5组GPIO,每组有16个管脚。而从选型手册中我们知道,cpu只封装出来64个管脚,所以cpu的管脚要进行复用。芯片的管脚都是多功能复用的,对于某一种管脚来说最多复用4种功能。
GPIO4种复用功能
GPIO4种复用功能分别是输出功能、输入功能、复用功能和模拟功能。
功能 | 分类 |
---|---|
输出功能 | 开漏输出:管脚上只能输出低电平,输出不了高电平 推挽输出:管脚上既能输出低电平,也能输出高电平 |
输入功能 | 上拉输入:在默认情况下管脚上呈现高电平 下拉输入:在默认情况下管脚上呈现高电平 浮空输入:默认管脚上呈现的电平状态不确定 |
复用功能 | 开漏复用 推挽复用 |
模拟功能 | 模拟的是输入功能,AD转换时使用 |