STM32HAL 快速入门(一):点灯前的准备 —— 从软件安装到硬件原理
前言
大家好,这里是 Hello_Embed。嵌入式开发的 “Hello World” 是点灯 —— 通过控制单片机引脚的高低电平,让 LED 亮灭。要实现这个功能,前期准备必不可少:从软件安装到硬件原理理解,每一步都很关键。本文就来详细说说点灯前的准备工作,为后续实战打下基础。
一、准备工作:软件与资料
首先需要安装必要的开发工具,具体包括:
- Keil5 ARM:用于编写和编译 STM32 程序的 IDE;
- STM32CubeMX:图形化配置工具,可快速生成初始化代码;
- ST-Link 驱动:用于将程序通过 ST-Link 下载到开发板。
相关安装教程和资料,在 B 站的韦东山和江协科技的视频中都有详细讲解。笔者使用的硬件是江协科技视频配套的开发板,虽然与韦东山 “HAL 快速入门与项目实战” 课程中使用的瑞士军刀开发板不同,但核心芯片(STM32F103C8T6)是一致的,不影响学习。
二、原理图:看懂 LED 与引脚的连接
要控制 LED,首先得通过原理图找到它与单片机引脚的连接关系。
完整原理图与 LED 部分解析
附开发板完整原理图如下:
我们重点看 LED 的连接:
从局部原理图可知:
- LED 的左端接高电平(VCC),右端串联限流电阻后,标注为 “PC13”;
- “PC13” 表示该端连接到 STM32 芯片的PC13 引脚(P 代表端口,C 是端口号,13 是引脚号)。
LED 亮灭的原理
根据连接关系,LED 的亮灭由 PC13 引脚的电平决定:
- 当 PC13 输出高电平(3.3V) 时,LED 两端电压差为 0(VCC 与 PC13 都是高电平),LED 不亮;
- 当 PC13 输出低电平(0V) 时,LED 两端产生电压差(VCC 到 0V),电流流过 LED,LED 点亮。
三、芯片引脚与命名:认识 STM32F103C8T6
要控制引脚,得先了解芯片的引脚分布和命名规则。
引脚与核心功能
STM32F103C8T6 芯片有 48 个引脚,引脚名如 “PB1、PB2” 等:
其中:
- “P” 表示通用引脚,“B” 是端口组(类似 “端口 C”“端口 A”),“1”“2” 是组内引脚编号;
- 不同引脚有不同功能,可通过芯片手册查询(如 “VDDA” 接高电平,“VSSA” 接地。
这款芯片有48个引脚,有了引脚编号与引脚名我们就能根据芯片手册查找其具体作用。
型号命名规则(C8T6)
- C:表示 48 引脚(其他如 T-36 引脚、R-64 引脚、V-100 引脚);
- 8:表示 Flash 存储空间为 64KB(B 代表 128KB);
- T:表示封装类型为 LQFP;
- 6:表示工作温度范围为 - 40~85℃。
四、单片机工作机理:控制引脚的底层逻辑
单片机要控制引脚(如 PC13),需要经过几个关键步骤,这与它的内部结构有关。
单片机的核心组成
STM32 集成了 CPU、RAM、Flash(存储程序)、GPIO(通用输入输出)、USB 控制器等模块,其中 GPIO 是控制引脚的核心。
控制引脚的步骤(以点灯为例)
- 使能 GPIO 模块:单片机默认关闭未使用的模块以节能,需先通过寄存器使能 GPIO 模块(如端口 C 的时钟);
- 引脚功能选择(多路选择):STM32 引脚可复用(如既接 GPIO,也可接 IIC、USB 等),需配置为 GPIO 功能;
- 配置 GPIO 方向:设置为输出模式(因为要控制 LED 亮灭,需要输出高低电平);
- 输出电平:通过寄存器设置 PC13 为低电平(点亮 LED)或高电平(熄灭 LED)。
/O 口电路图(辅助理解)
STM32 的 I/O 口内部电路体现了上述步骤:
- 引脚信号可作为输入(连接模拟输入、TTL 模块等)或输出(GPIO 输出、其他功能输出);
- 配置寄存器相当于控制电路中的开关,决定引脚的功能和方向。
结尾
本文梳理了点灯前的准备工作:安装必要软件(参考韦东山、江协科技的资料)、看懂 LED 与 PC13 引脚的连接、了解芯片命名和引脚功能,以及控制引脚的底层步骤。这些知识是后续编写代码的基础。
下一篇笔记,Hello_Embed 将带大家用 HAL 库实际编写点灯程序,记得提前安装好软件和驱动哦~