【保姆级实操版 - STM32 系列笔记】新手入门STM32第一课:CubeMX+Keil MDK实现LED点灯

前言 :对于零基础的 STM32 新手,入门的核心是用最简单的步骤跑通第一个Demo(点灯),先体验 " 写代码→烧录→灯亮 " 的成就感,再慢慢理解复杂的原理。

  • 本文全程避开"寄存器、时钟树"等难懂名词,只用"点鼠标、复制代码"的操作,带你100%跑通STM32点灯。

文章目录


准备工作(照做就行,无难度)

1. 硬件准备

  • STM32开发板:选 "STM32F103C8T6"(新手最常用)
  • ST-Link下载器:连接电脑和开发板的"数据线"

2. 软件安装(跟着安装向导走,不熟悉就搜下安装教程很多)

  • STM32CubeMX:一个 "画图即配置 " 的软件 ------ 不用写代码,点鼠标就能设置STM32的硬件参数,自动生成基础代码。
  • Keil MDK-ARM:一个 "写代码、传代码 " 的软件 ------ 把控制灯亮灭的简单代码写进去,再传到STM32板子上。
    • 官方下载地址:https://www.keil.com/download/product/
    • 安装完成后记得安装 ST-Link 驱动:在安装路径下找这个 \core\ARM\STLink\USBDriver\dpinst_amd64.exe 运行即可
  • HAL库 :可以理解为 "现成的工具包" ------ 里面有写好的控制硬件的简单指令,我们直接用就行,不用自己造。

TIPS: 点击上面的工具名会跳转到我提前下载好,保存在夸克网盘的对应安装压缩包 (官网太慢了),如失效请留言给我 ~ `(>﹏<)′ 帮大家加速加速 !!


第一步:用CubeMX"画图"配置(纯点鼠标,0代码)

CubeMX的作用就是帮我们"搭好架子",不用管底层原理,跟着点就行:

  1. 点击 ACCESS TO MCU SELECTOR 选项

  2. 选择芯片 STM32F103C8T6,开始创建工程项目

  3. 设置 SYS 模块下的 Debug 为 Serial Wire (因为 ST-Link 采用的是 SW 调试接口)

  4. 设置 RCC 下的 HSE 为 Crystal/Ceramic Resonator (有了时钟信号 CPU 才能工作),设置时钟频率为 72

  5. 设置 PC13 (我们本次点亮的是 PC13 小灯) 为 GPIO Output
    6. 工程命名 LED

  6. 生成 Keil 代码,点击 GENERATE CODE 后,等几秒,再点弹出的 Open Project(自动打开 Keil 软件)

第二步:用Keil写点灯代码 (仅需一行代码)

打开Keil后,左边栏找到「Src」→ 双击「main.c」(这个文件是控制STM32干活的核心),在 main.c 的 while 函数内添加:

c 复制代码
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);

Keil已经自动生成了所有基础代码,我们只需要加 1 行 "让灯亮" 的简单代码:

第三步:编译+烧录(点两下鼠标,必成功)

1. 编译代码(检查有没有写错)

点击Keil顶部的第二个图标(Build)→ 等几秒,底部窗口显示「0 Error, 0 Warning」(0个错误、0个警告),就是编译成功(有错误就检查代码是不是粘错位置了)。

2. 烧录代码(传到STM32板子上)

  • 把ST-Link一头插电脑,一头插开发板,给开发板通电;
  • 点击Keil顶部的"下载"图标(Download)→ 软件自动把代码传到板子上。

3. 看效果(必成功)

传完代码后 (记得按下板子上红色的 复位 按键),开发板上的LED灯就会 "亮"------恭喜你!第一次STM32开发就成功了。


总结

CubeMX帮我们把"难的、容易错的、需要记的"工作全做了,我们只需要专注做"让灯闪、让传感器工作"这种简单的事,先体验成功,再慢慢学原理。


新手必看:常见问题(解决了100%成功,不成功留言给我,一起学习!)

  1. 烧录失败:检查ST-Link有没有插紧、开发板有没有通电、USB线是不是插对接口了;
  2. 灯不亮:确认CubeMX里选的是PC13引脚,代码里的"GPIOC"没写成"GPIOA";
  3. 编译报错:检查代码是不是粘错位置了,工程路径有没有中文。

这一步成功后,后续学串口、传感器、电机控制,都是在这个基础上"多加点鼠标配置、多粘几行代码",难度完全可控,越学越有信心!

相关推荐
chushiyunen4 小时前
langchain实现agent智能体笔记
笔记·langchain
jyan_敬言4 小时前
【算法】高精度算法(加减乘除)
c语言·开发语言·c++·笔记·算法
电子工程师成长日记-C514 小时前
51单片机气压检测仪
单片机·嵌入式硬件·51单片机
¥-oriented4 小时前
数据集资源
笔记
嵌入式老菜鸟qq1252427734 小时前
nRF54H20 + Zephyr 开发环境(二):烧录与踩坑实录
stm32·单片机·嵌入式硬件
-Try hard-4 小时前
ARM | 点亮LED灯!
arm开发·单片机·嵌入式硬件
biuyyyxxx4 小时前
Power Query功能区 - 主页
笔记·学习·excel
今儿敲了吗4 小时前
DS-3 循环队列判断队满
数据结构·笔记·学习
m0_651562525 小时前
2026.3.23搭建AI算法可视化部署演示学习笔记
笔记·学习
日更嵌入式的打工仔5 小时前
电机三环控制
单片机·嵌入式硬件