【保姆级实操版 - 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. 编译报错:检查代码是不是粘错位置了,工程路径有没有中文。

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

相关推荐
智购科技自动售货机工厂5 分钟前
2026自动售货机电机驱动芯片选型:从L298N到DRV8870的工程实践~YH
大数据·开发语言·数据库·人工智能·单片机·嵌入式硬件·scikit-learn
恒锐丰科技林技术员9 分钟前
SS8918T 微步进电机驱动芯片:高性能步进运动控制解决方案
经验分享·嵌入式硬件·硬件工程
2601_9667990424 分钟前
酷嗨米H300三路超清采集盒深度解读:重构三机位直播的硬件解决方案
嵌入式硬件
M78佐菲31 分钟前
Linux学习笔记:目录IO与帧缓冲
linux·笔记·学习·算法
hongmai66688838 分钟前
把玩ESP8684-WROOM-04C-H4X:一颗耐高温的RISC-V小钢炮
笔记·单片机·嵌入式硬件·物联网·risc-v
米饭不加菜42 分钟前
51单片机入门LED篇
stm32·单片机·51单片机
天天爱吃肉82181 小时前
XCP协议 Part 1 概述 — 完整学习笔记(商用车主机厂工程师版)
大数据·笔记·python·学习·汽车
蒲锘1 小时前
DevOps 项目阶段笔记二:Docker Engine + cri-dockerd
笔记·docker·devops
Jack153027682791 小时前
D2596HV高压异步DC-DC降压芯片简介
嵌入式硬件·汽车·51单片机·无人机·工业自动化
优化Henry2 小时前
关于“星链”互联网系统的几点认识
运维·服务器·网络·笔记·学习·信息与通信