STM32简介与选型

什么是STM32?

STM32是意法半导体(ST)推出的32位微控制器系列,基于ARM Cortex-M内核。

STM32系列分类

系列 内核 特点 典型应用
STM32F0 Cortex-M0 入门级、低成本 简单控制
STM32F1 Cortex-M3 主流型、性价比高 通用应用
STM32F4 Cortex-M4 高性能、带DSP 音频、图像
STM32F7 Cortex-M7 超高性能 高端应用
STM32L系列 - 低功耗 电池供电

STM32命名规则

以STM32F103C8T6为例:

  • STM32: 产品系列

  • F: 类型(F=通用型,L=低功耗,H=高性能)

  • 103: 子系列(103=增强型)

  • C: 引脚数(C=48pin,R=64pin,V=100pin,Z=144pin)

  • 8: Flash容量(8=64KB,B=128KB,C=256KB,E=512KB)

  • T: 封装(T=LQFP)

  • 6: 温度范围(6=-40~85℃)

选型建议

  • 初学者推荐: STM32F103C8T6(Blue Pill开发板)

  • 资源需求大: STM32F103ZET6或F4系列

  • 低功耗应用: STM32L系列


1.2 开发环境搭建

安装Keil MDK-ARM

  1. 下载Keil MDK

  2. 安装步骤

    复制代码
    1. 运行安装程序
    2. 选择安装路径(建议默认)
    3. 填写用户信息
    4. 完成安装
  3. 安装STM32器件支持包

    • 打开Keil

    • Project → Manage → Pack Installer

    • 搜索STM32F1

    • 点击Install安装

安装ST-Link驱动

  1. 下载ST-Link驱动

  2. 连接ST-Link到电脑

  3. 安装驱动程序

验证安装

复制代码
1. 打开Keil
2. Project → New μVision Project
3. 选择STM32F103C8
4. 添加启动文件
5. 编译测试

1.3 STM32CubeMX使用

什么是STM32CubeMX?

STM32CubeMX是ST官方提供的图形化配置工具,可以:

  • 图形化配置引脚

  • 配置时钟树

  • 生成初始化代码

  • 支持多种IDE

安装步骤

  1. 下载STM32CubeMX(需要注册ST账号)

  2. 安装Java运行环境(JRE)

  3. 运行安装程序

  4. 安装STM32Cube固件包

基本使用流程

  1. 新建工程

    • File → New Project

    • 选择芯片型号

  2. 配置引脚

    • 点击引脚选择功能

    • 设置输入/输出模式

  3. 配置时钟

    • Clock Configuration标签

    • 设置系统时钟频率

  4. 生成代码

    • Project → Generate Code

    • 选择IDE类型(Keil)


1.4 第一个工程:点亮LED

硬件准备

  • STM32F103C8T6开发板

  • ST-Link下载器

  • LED(板载或外接)

使用CubeMX创建工程

  1. 选择芯片

    • 新建工程,选择STM32F103C8
  2. 配置LED引脚

    • 假设LED接在PC13

    • 点击PC13,选择GPIO_Output

    • 设置标签:LED

  3. 配置时钟

    • 使用外部8MHz晶振

    • 系统时钟72MHz

  4. 生成代码

    • Project Settings设置工程名和路径

    • Toolchain选择MDK-ARM

    • Generate Code

编写代码

复制代码
/* main.c */
​
#include "main.h"
​
int main(void)
{
    /* MCU初始化 */
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
​
    while (1)
    {
        /* 点亮LED(低电平点亮) */
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
        HAL_Delay(500);  // 延时500ms
​
        /* 熄灭LED */
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
        HAL_Delay(500);
    }
}

编译下载

  1. 编译工程

    • 点击Build按钮(F7)

    • 检查错误

  2. 下载程序

    • 连接ST-Link

    • 点击Download按钮(F8)

  3. 观察结果

    • LED开始闪烁

常见问题

Q: 下载失败?

  • 检查ST-Link连接

  • 确认驱动已安装

  • 检查芯片是否被锁(读保护)

Q: LED不亮?

  • 确认LED引脚

  • 检查是高电平还是低电平点亮

  • 用万用表测量引脚电平


练习题

  1. 修改程序,让LED以不同的频率闪烁(100ms、200ms、1s)

  2. 使用两个LED,实现交替闪烁

  3. 阅读STM32F103数据手册,了解芯片资源

下一章

02-GPIO操作 - 深入学习GPIO的输入输出配置

相关推荐
HANDY092006 分钟前
从“不照人”到“剂量达标”:扇叶遮挡式UV-C空气消毒的工程边界与可验证评估框架
开发语言·人工智能·嵌入式硬件·智能家居
飞凌嵌入式3 小时前
千次静电放电试炼,守住飞凌嵌入式硬件可靠底线
嵌入式硬件
蹊黎11 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
Zw-awa15 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王15 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何15 小时前
二进制和十六进制
stm32·单片机
国科安芯17 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
TST-魚爷17 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
不昀19 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵20 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件