stm32介绍(节选自普中开发攻略)

首页    电子交流    STM32    STM32基础知识    stm32介绍(节选自普中开发攻略)

一、STM32 是什么

从字面意义来看:

ST:意法半导体,是一个公司的名字。

M:Microelectronics 的缩写,表示微控制器,要注意微控制器和微处理器

的区别

32:32bit 的意思,表示这是一个 32bit 的微控制器



二、STM32 与 ARM 的关系

ARM 是英国的芯片设计公司,其最成功的莫过于 32 位嵌入式 CPU 核----

ARM 系列,最常用的是 ARM7 和 ARM9,ARM 公司主要提供 IP(Intellectual

Property core 知识产权的核心)核,就是 CPU 的内核结构,只包括最核心的部

分,并不是完整的处理器。ARM 把这个核卖给各大半导体公司,如 Philips,三

星,ATMEL,甚至 Intel 等许多公司。ARM 为了对付 8 位机市场,推出了一系列

Cortex-M 核,STM32 就是将Cortex-M 作为内核,通过一些外设等组合封装在一

起就成了如今火爆的 32 位嵌入式处理器。

我们开发板上使用的是 STM32F1,也就是 M3 内核,Cortex-M3 采用ARMv7-M

架构,ARMv7 架构定义了三大分工明确的系列:

“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用

“R”系列:针对实时系统;

“M”系列:对微控制器。

Cortex-M4采用ARMv7-ME架构,Cortex-M0采用ARMv6-M架构,Cortex-A5/A8

采用 ARMv7-A 架构,传统的 ARM7 系列采用的是 ARMv4T 架构。



三、STM32F103ZET6 介绍

首先我们看下 STM32 是如何分类的:

1

其次看下 STM32 的命名规则,如下:

2

3


我们开发板使用的是 STM32F103ZET6 芯片,芯片外观及引脚图如下:

54


其内部资源如下:

(1)内核:32 位 高性能 ARM Cortex-M3 处理器。时钟:高达 72M,实际还

可以超频一点。单周期乘法和硬件除法。

(2)IO 口:STM32F103ZET6: 144 引脚 112 个 IO,大部分 IO 口都耐5V(模

拟通道除外),支持调试:SWD 和 JTAG,SWD 只要 2 根数据线

(3)存储器容量:512K FLASH,64K SRAM

(4)时钟,复位和电源管理:

①2.0~3.6V 电源和 IO 电压

②上电复位,掉电复位和可编程的电压监控

③强大的时钟系统

-4~16M 的外部高速晶振

-内部 8MHz 的高速 RC 振荡器

-内部 40KHz 低速 RC 振荡器,看门狗时钟

-内部锁相环(PLL,倍频),一般系统时钟都是外部或者内部高速

时钟经过 PLL 倍频后得到

- 外部低速 32.768K 的晶振,主要做 RTC 时钟源

(5)低功耗:

-睡眠,停止和待机三种低功耗模式

-可用电池为 RTC 和备份寄存器供电

(6)AD:

-3 个 12 位 AD(多达 21 个外部测量通道)

-转换范围:0-3.6V(参考电源电压)

-内部通道可以用于内部温度测量

-内置参考电压

(7)DA:2 个 12 位 DA

(8)DMA:12 个 DMA 通道(7 通道 DMA1,5 通道 DMA2),支持外设:定时器,

ADC,DAC,SDIO,I2S,SPI,I2C,和 USART

(9)定时器:多达 11 个定时器

-4 个通用定时器

-2 个基本定时器

-2 个高级定时器

-1 个系统定时器

-2 个看门狗定时器

(10)通信接口:多达 13 个通信接口

-2 个 I2C 接口

-5 个串口

-3 个 SPI 接口

-1 个 CAN2.0

-1 个 USB FS

-1 个 SDIO

STM32F103ZET6 芯片有这么多管脚,那么怎么知道相应管脚的具体功能呢?

我们可以通过芯片数据手册来查找,STM32F103ZET6 芯片数据手册在光盘“\6--

芯片资料\开发板芯片数据手册\STM32F103ZET6”。打开查找到 STM32 引脚定义

后如下:

6

STM32F103 系列芯片的系统架构如下:

7


STM32F103 系列芯片的系统结构如下:(不包含互联网型)

8


从上图可以看出,在小容量、中容量和大容量产品中,主系统由以下部分构

成:


● 四个驱动单元:

─ Cortex-M3 内核 DCode 总线(D-bus),和系统总线(S-bus)

─ 通用 DMA1 和通用 DMA2

● 四个被动单元

─ 内部 SRAM

─ 内部闪存存储器

─ FSMC

─ AHB 到 APB 的桥(AHB2APBx),它连接所有的 APB 设备

这些都是通过一个多级的 AHB 总线构架相互连接的。下面我们看看它们各自

的功能:

ICode 总线

该总线将 Cortex-M3 内核的指令总线与闪存指令接口相连接。指令预取在此

总线上完成。

DCode 总线

该总线将 Cortex-M3 内核的 DCode 总线与闪存存储器的数据接口相连接(常

量加载和调试访问)。

系统总线

此总线连接 Cortex-M3 内核的系统总线(外设总线)到总线矩阵,总线矩阵协

调着内核和 DMA 间的访问。

DMA 总线

此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode

和 DMA 到 SRAM、闪存和外设的访问。

总线矩阵

总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用轮换

算法。在互联型产品中,总线矩阵包含 5 个驱动部件(CPU 的 DCode、系统总线、

以太网 DMA、 DMA1 总线和 DMA2 总线)和 3 个从部件(闪存存储器接口(FLITF)、

SRAM 和 AHB2APB 桥)。在其它产品中总线矩阵包含 4 个驱动部件(CPU 的 DCode、

系统总线、DMA1 总线和 DMA2 总线)和 4 个被动部件(闪存存储器接口(FLITF)、

SRAM、 FSMC 和 AHB2APB 桥)。AHB 外设通过总线矩阵与系统总线相连,允许DMA

访问。

AHB/APB桥(APB)

两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。 APB1 操作速度限

于 36MHz, APB2 操作于全速(最高 72MHz)。有关连接到每个桥的不同外设的地

址映射请参考《STM32F1xx 中文参考手册》存储器映像章节。在每一次复位以后,

所有除 SRAM 和 FLITF 以外的外设都被关闭,在使用一个外设之前,必须设置寄

存器 RCC_AHBENR 来打开该外设的时钟。



四、STM32 能做什么

STM32 的用处取决于其内部资源,前面我们了解了 STM32 内部拥有非常多的

通信接口。所以如果你使用的模块拥有此接口都可以通信。比如:

USART:ESP8266 WIFI 模块、GSM 模块、蓝牙模块、GPS 模块、指纹识别模

块等。

IIC:EEPROM、MPU6050 陀螺仪、0.96 寸 OLED 屏、电容屏等。

SPI:串行 FLASH、以太网 W5500、VS1003/1053 音频模块、SPI 接口的 OLED

屏、电阻屏等。

AD/DA:光敏传感器模块、烟雾传感器模块、可燃气体传感器模块、简易示

波器等。

其他的一些接口这里就不罗列,反正 STM32 能做的东西太多太多。

日常生活中可见的电子产品:

智能手环,微型四轴飞行器,平衡车、扫地机、移动 POST 机,智能电饭锅,

3D 打印机、机器人等。

1211

109


总之学好 STM32 用处是大大的,而众多 STM32 芯片中,M3 内核的

STM32F103ZET6 芯片当然是首选。大家只要认真学习本套教程,相信学好 STM32

并不是神话!



五、STM32 学习方法

(1)基本外设:

GPIO 输入输出,外部中断,定时器,串口。理解了这四个外设,基本就入

门了一款 MCU。

(2)基本外设接口:

SPI,IIC,WDG, FSMC,ADC/DAC,SDIO 等。这些外设接口功能原理对每个芯片

几乎都是一样。对芯片而言就是多和少而已。

(3)高级功能:

UCOS,FATFS,EMWIN 等。以及一些应用。

(4)C 语言能力要加强

C 语言是嵌入式开发的基础中的基础。如果 C 语言不过关,大大限制嵌入式

学习进度,以及嵌入式学习深度。嵌入式高手都是 C 高手。选择谭浩强的《C 程

序设计 第四版》入门及巩固 C 语言基础是不错的,但是仅靠这本书远远不够,

可以参考《C 与指针》、《C 指针编程之道》等。我们已经在光盘“8--STM32相

关资料\C 语言加油站”内提供给大家。

(5)多动手编程


2018年8月13日 08:22
浏览量:0
收藏