目录
- 1、 什么是STM32
- 1.1、STM32的字面含义
- 1.2、STM32诞生的背景
- 2、STM32能做什么
- 2.1、STM32有什么
- 2.2、身边常见的电子产品
- 3、STM32怎么选型
- 3.1、STM32分类
- 3.2、ST的32位微控制器产品线
- 3.2.1、STM32F103VET6
- 3.3、STM32的命名方法
- 3.4、如何分配原理图引脚
- 3.5、数据手册中对引脚的功能定义
- 3.6、引脚的功能定义解读
- 3.7、PCB哪里打样
- 4、STM32常用几种开发方式
- 对比总结
- 示例
- 5、STM32基于什么架构
- 5.1、基于ARM Cortex架构
- 5.2、ARM的概念
- 5.3、ARM内核分类
- 5.3.1、按代数
- 5.3.2、按系列
- 5.4、内核与外设
1、 什么是STM32
1.1、STM32的字面含义
1、ST— 意法半寻体,是一个公司名,即SOC厂商
2、M— Microelectronics的缩写,表示微控制器,大家注意微控制
器和微处理器的区别
3、32— 32bit的意思,表示这是一个32bit的微控制器
1.2、STM32诞生的背景
1、技术的更替,这个是最主要的原因
2、市场的需求(成本、性能、功耗、GUI、操作系统),传统的8/16位的微控制器,
久经岁月的洗礼,如今虽有余晖,当面对这些需求时更显的是捉襟见肘
3、ST的努力(产品线丰富、开发简单易上手—基于固件库开发),让STM32在众多的
基于Cortex-M内核的微控制器中脱引而出,成为最璀璨的新星
2、STM32能做什么
2.1、STM32有什么
STM32属于一个微控制器,自带了各种常用通信接口,功能非常强大
1、串口—USART,用于跟跟串口接口的设备通信,比如:USB转串口模块、ESP8266
WIFI、GPS模块,GSM 模块,串口屏、指纹识别模块
2、内部集成电路—I2C,用于跟I2C接口的设备通信,比如:EEPROM、电容屏、陀螺
仪MPU6050、0.96寸OLED模块
3、串行通信接口—SPI,用于跟SPI接口的设备通信,比如:串行FLASH、以太网
W5500、音频模块VS1053
4、SDIO、FSMC的超级、I2S、ADC、GPIO
2.2、身边常见的电子产品
智能手环,微型四轴飞行器,平衡车、扫地机、移动POST机,智能电饭锅,3D打印机
3、STM32怎么选型
3.1、STM32分类
3.2、ST的32位微控制器产品线
3.2.1、STM32F103VET6
- 内核架构: ARM Cortex-M3
- 引脚: 100
- FLASH大小: 512kB
- 封装: QFP
不同型号性能有差异, 但开发和应用是相通的, 甚至可以直接迁移
3.3、STM32的命名方法
3.4、如何分配原理图引脚
3.5、数据手册中对引脚的功能定义
3.6、引脚的功能定义解读
3.7、PCB哪里打样
4、STM32常用几种开发方式
- 寄存器模式
- 标准库模式
- LL库
- HAL库
对比总结
开发方式 | 性能 | 开发效率 | 代码可读性 | 资源占用 | 适用场景 |
---|---|---|---|---|---|
寄存器开发 | 最高 | 最低 | 较差 | 最少 | 高性能、实时控制、优化需求高 |
标准外设库 | 较高 | 中等 | 较好 | 较少 | 旧项目维护、简单应用 |
LL库 | 高 | 中等 | 较好 | 较少 | 高性能、精细控制硬件 |
HAL库 | 中等 | 最高 | 最好 | 较多 | 快速开发、复杂应用、新项目 |
示例
#寄存器直接操作
GPIOA->ODR |= (1 << 5); // 置高PA5
GPIOA->ODR &= ~(1 << 5); // 置低PA5
#标准库
GPIO_SetBits(GPIOA, GPIO_Pin_5); // 置高PA5
GPIO_ResetBits(GPIOA, GPIO_Pin_5); // 置低PA5
#LL库
LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5);// 置高PA5
LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5);// 置低PA5
# HAL库
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // 置高PA5
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // 置低PA5
5、STM32基于什么架构
5.1、基于ARM Cortex架构
5.2、ARM的概念
- ARM公司(现为Arm Holdings)是一家专注于研发高效低功耗处理器架构的公司,其设计被广泛应用于嵌入式系统、移动设备和物联网领域。核心业务为处理器架构设计 和 IP授权
- ARM公司设计的架构, 以及对应的产品
- Advanced RISC Machine,是一种基于精简指令集计算(RISC)的处理器架构。
- 高效的功耗比和强大的性能广泛应用于嵌入式系统,包括STM32。
5.3、ARM内核分类
5.3.1、按代数
ARMv1 ~ ARMv9
5.3.2、按系列
- Cortex-M系列 : 专为嵌入式微控制器设计。
- Cortex-M0/M0+:低功耗,适合简单控制任务。(简单的传感器, 小玩具, 消费电子)
- Cortex-M3/M4:高性能,支持DSP指令,适合复杂应用。 (功能强一点的工业产品或消费产品, 主控)
- Cortex-M7:更高性能,适合实时性要求高的任务 (高级功能的产品)
- Cortex-R系列:实时性要求高的嵌入式系统。
- Cortex-A系列:用于高性能应用,如手机和平板。
- Cortex-X系列: 为高性能应用推出的“定制级”核心
5.4、内核与外设
ARM公司并不直接生产芯片, 而是开发并授权内核给其他半导体厂商, 在此基础上设计和定制并生产
A系列: 高通, 联发科, 苹果, 三星, 华为, 博通
M系列: 意法半导体(ST) , 恩智浦(NXP)
-
内核(Core) : 负责执行指令和逻辑运算,是芯片的核心计算单元。
-
运算单元(ALU):负责加减乘除等运算。
-
寄存器组:用于存储临时数据和状态。
-
指令集:如ARM Cortex-M系列支持的Thumb-2指令集。
-
中断管理:如NVIC(嵌套向量中断控制器)。
-
-
外设(Peripheral) :与外界交互,完成各种硬件功能,例如I/O操作、计时、通信等。
- 通信接口:UART、SPI、I2C等。
- 定时器:用于时间控制或计数。
- ADC/DAC:模拟信号与数字信号的转换。
- GPIO:通用输入输出引脚。