stm32-基础day02

MCU单片机(单核)

SOC system on chip(多核 多线程)

无论是MCU还是SOC都可以组成一个完整的计算机系统。

STM32F103 = cpu + 内存 + 硬盘 + 外设

image-20230131184741703

总线

CPU和各个外设是通过总线(bus)进行连接的。

什么是总线?

说到总线就要提到计算机的体系结构,我们编写编译好的代码都是放在硬盘中的,代码中包括一堆的指令和数据,cpu就是执行这些指令的部件。但是cpu不能直接从硬盘中读取指令和数据,因为cpu和硬盘(flash)的主频频率相差太大,如果直接进行传输只能按照最低的频率,这样的效率就会大大下降。

冯诺依曼体系结构

内存(memory)就可以解决这个问题,我们将硬盘中的指令和数据都放到内存中的一块区域。cpu也要从相同的区域读写指令,cpu就要区分哪些是指令,哪些是数据。cpu本身就是一个寄存器堆。虽然cpu不仅要去写数据,而且要区分内存中的指令和数据,但是由于内存的访问频率很高,总体的访问速率有很大的提升。这种体系结构就是冯诺依曼体系结构,其中数据交互的先就是总线,而冯诺依曼体系结构取数据和取指令都是同一条总线

哈佛体系结构

哈佛体系结构取数据和取指令用的是不同的总线

image-20230131190142881

总线的分类

总线分为三类:数据总线地址总线控制总线 简称为三总线。

例:0x12341234这个地址放0x100数据的过程

硬件帮助我们把数据放到地址上进行传输,其中0x100放到了数据总线上进行传输,0x12341234则放到地址总线进行传输,控制总线就是控制将数据放到地址线上。

AHB总线

AHB总线也是三总线,是内部的高速总线,cpu就是通过AHB访问各种外设。其中有AHB1和AHB2。

和AHB一起的还有APB1和APB2,它们也是三总线,叫做外部总线。

具体可以分析查看STM32F103xx框架图:

image-20230131195428083

GPIO

在框架图中可以看出,在STM32中GPIO资源非常丰富,一共有5组GPIO,每组有16个管脚。而从选型手册中我们知道,cpu只封装出来64个管脚,所以cpu的管脚要进行复用。芯片的管脚都是多功能复用的,对于某一种管脚来说最多复用4种功能

GPIO4种复用功能

GPIO4种复用功能分别是输出功能输入功能复用功能模拟功能

功能 分类
输出功能 开漏输出:管脚上只能输出低电平,输出不了高电平
推挽输出:管脚上既能输出低电平,也能输出高电平
输入功能 上拉输入:在默认情况下管脚上呈现高电平
下拉输入:在默认情况下管脚上呈现高电平
浮空输入:默认管脚上呈现的电平状态不确定
复用功能 开漏复用
推挽复用
模拟功能 模拟的是输入功能,AD转换时使用