STM32芯片基本知识
STM32开发基本知识
1. STM32的起源
STM32指ST公司设计的一系列以ARM Cortex-M 为核心的32位微控制器。
意法半导体(STMicroeletonics,简称ST)集团成立于1987年,由意大利SGS微电子公司和法国Thomson公司合并而成。世界上最大的半导体公司之一。

对应产品线如下图:

补充:
Cortex-M 是 ARM 处理器架构下的其中一个系列,主要应用嵌入式领域,还有Cortex-A 系列(高性能,如苹果手机芯片)和Cortex-R 系列(注重实时操作)
ARM 架构基于精简指令集(RISC)开发,特点是低功耗和高能效。
x86和x64架构基于CISC(复杂指令集)由AMD和Intel共同开发,特点是高性能和灵活性。
2. 芯片命名规则

3. 芯片三种开发方式的区别
- 基于寄存器开发
优点:代码执行效率高、对硬件理解深入
缺点:开发效率低、代码移植不方便 - 基于标准库(LL)库开发
优点:比较寄存器开发效率高,开发难度降低,比寄存器方式移植容易
缺点:抽象了硬件层,不利于理解底层,官方已经停止更新,新的芯片不提供标准库 - 基于HAL库函数开发
优点:ST公司主推,开发工具持续更新,开发难度低,移植及其容易
缺点:几乎屏蔽所有硬件层信息
4. 项目基本文件


5. 系统架构
5.1 三个被动单元
内部SRAM:存储程序执行时用到的变量;
内部闪存存储器:存储下载的程序、程序执行时用到的常量;
AHB到APB的桥(AHB to APBx):桥1,通过APB2总线连接到APB2上的外设,高速外设,最高72MHz;桥2,通过APB1总线连接APB1上的外设,低速外设,最高36MHz。
5.2 四个驱动(主动)单元
CortexTM-M3内核DCode总线(D-bus):通过外部的DCode总线连接到总线矩阵,然后与闪存存储器的数据接口相连接,实现Flash常量加载和调试访问;
内核系统总线(S-bus):通过外部的System总线连接到总线矩阵;
通用DMA1(Direct Memory Access)和通用DMA2:通过DMA总线,连接到总线矩阵。用于降低CPU负担,不用通过CPU就可以实现内存和外设之间的数据传输。
5.3 其他单元
内核ICode总线:内核指令通过外部的ICode总线连接Flash,实现指令的读取;
FSMC(Flexible Static Memory Controller):用来扩展外部SRAM、Flash,连接LCD屏幕;

6. 时钟
STM32单片机一共有五个时钟,其中HSI振荡器时钟 、HSE震荡时钟、PLL时钟可用于做系统时钟 ,LSE时钟和LSI时钟为低速时钟分别用于实时钟和看门狗,RCC_CR寄存器控制时钟的各项功能。时钟具体如下:
- HSE(High Speed External)高速外部时钟信号,可以由用户外部时钟源或外部晶体/陶瓷谐振器提供;
- HSI(High Speed Internal)内部高速时钟信号,由内部8MHz的RC震荡器产生,可直接作为系统时钟或2分频后作为PLL输入,HSI RC振荡器可以不需要任何外部器件条件下提供时钟。启动时间比HSE晶体振荡器短。但校准后精度仍然较差。当HSE震荡器失效时,HSI时钟会作为备用时钟源;
- PLL(Phase Locked Loop)锁相环倍频输出,用于倍频HSE或HSI输出的时钟;
- LSE(Low Speed External)低速外部时钟信号,一个32.768kHz的外部晶体/陶瓷谐振器,为实时时钟或其他定时功能提供一个低功耗且精确的时钟源;
- LSI(Low Speed Internal)内部低速时钟信号,可在停机或待机下保持运行,为独立看门口和自动唤醒单元提供时钟,频率大约40kHz。

7. 相关资源下载地址
标准外设库下载地址:STM32标准外设软件库: 相关产品
keil官方下载地址:Keil Product Downloads
ARM 5, 4.1编译器下载地址:Legacy Arm Compiler 5, 4.1, and RVCT (ACOMP5)

浙公网安备 33010602011771号