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

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

相关推荐
创界工坊工作室6 小时前
50-基AT89C51的自动窗帘控制系统的设计
stm32·单片机·嵌入式硬件·51单片机·proteus
霍霍的袁6 小时前
【C++11】左值右值引用与移动语义详细笔记(左值右值、右值引用、移动构造、移动赋值、引用折叠、万能转发)
c++·笔记·学习·visual studio
MandalaO_O6 小时前
SpringMVC 异常处理 & 拦截器
笔记
xiangw@GZ7 小时前
SD / eMMC / SDIO 总线接口技术对比
单片机·嵌入式硬件
新晨单片机设计7 小时前
S030D-WIFI空气净化器(温湿度、甲醛、空气质量)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·空气净化器
Zw-awa7 小时前
一只按键不只“按下”:短按、长按和连按如何共存
stm32
笨笨饿7 小时前
#143_屏幕画撕裂的问题及解决方法
linux·stm32·单片机·嵌入式硬件·mcu·lvgl·嵌入式实时数据库
李永奉8 小时前
杰理可视化SDK开发-音频录制功能使用教程
笔记·单片机·嵌入式硬件·mcu·物联网·音视频
_YouziTech_8 小时前
【STM32+MAX98357】MP3转PCM存入Flash并控制音频输出
stm32·单片机·音视频·内存·pcm·i2s·wav
ysu_03148 小时前
【C++ 进阶之路】(二)从内联函数到类与对象:深挖内存对齐、this 指针与三大默认成员函数
开发语言·数据结构·c++·笔记·面向对象·this