当前位置: 首页 > news >正文

STM32 01 LED点灯(第一天学习)

一、前言

今天是我正式接触STM32的第一天,之前只是简单看过相关理论,今天第一次动手实操点灯实验。目前我基础很差,还不会代码封装、工程分层这类技巧,只能写最直白简单的代码,把这次实验完整记录下来,方便日后复盘,也给同样刚入门的同学做个参考,大佬们看到有写得不对的地方欢迎指正。

二、实验目标

初步认识STM32的GPIO输出功能,控制板载LED周期性亮灭闪烁。

三、本地工程真实结构

我使用的是基础空白模板工程,文件夹只有系统自带的四类,没有Hardware文件夹,也没有新建单独的驱动文件:

  1. Start:芯片启动文件,固定自带,不用修改
  2. Library:官方底层标准库,提供外设相关函数
  3. System:存放系统时钟、延时工具函数
  4. User:唯一可以自行编写代码的目录

现阶段我完全不懂得代码分层封装,所有操作逻辑直接写在User下的main.c主函数内,不额外新建.c/.h驱动文件,贴合刚上手的学习水平。

四、硬件原理(浅显理解)

  1. 开发板自带LED连接在PC13引脚;
  2. 引脚输出低电平,LED导通点亮;输出高电平,LED断电熄灭;
  3. 电路里需要串联220Ω限流电阻,避免电流过大烧毁灯珠,这点是学长提醒我的。

五、完整代码

`#include"stm32f10x.h"// Device header#include"delay.h"intmain(){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);}}

六、个人粗浅学习感悟

作为刚入门的新手,我现在对知识点的理解还特别浅薄,简单梳理一下今天学到的内容:

  1. STM32的GPIO外设默认关闭时钟,如果忘记添加开启时钟的代码,LED完全没有任何反应,这是我踩的第一个大坑;
  2. 引脚模式必须设置为推挽输出,只有这个模式才能主动输出高低电平,选错模式无法驱动LED;
  3. GPIO_ResetBits用来拉低引脚电平、点亮灯光,GPIO_SetBits拉高电平、关闭灯光,最开始我记反了,反复试了好几次才分清;
  4. while(1)无限死循环是单片机程序的核心,能让亮灭逻辑不断重复,实现持续闪烁的效果。

七、今天踩过的所有坑

  1. 漏写时钟开启代码,上电后LED毫无动静,排查很久才找到问题;
  2. 不清楚引脚速度参数的作用,暂时先照搬教程里的50MHz;
  3. 高低电平逻辑混淆,上电后LED一直常亮,无法熄灭;
http://www.jsqmd.com/news/1132183/

相关文章:

  • 实战手册:用Exiled Exchange 2打造流放之路2高效交易体验
  • 福州高定木作怎么选不踩坑?整木定制品牌实力深度对比
  • 大厂提前批7月陆续启动:软件测试岗的“黄金30天”怎么抢?
  • 【STM32项目】智能快递柜
  • 2026微信小程序搭建平台实测测评,优缺点解析
  • 红外火情时序预判 CNN-LSTM 模型
  • 多模态AI Agent在内容生成领域的研究进展综述
  • 3大核心功能彻底解决Android存储空间不足问题:SD Maid SE深度清理指南
  • 《怪物猎人:荒野》 豪华中文版 全DLC VBS一键启狩猎
  • 开源中文字体的终极解决方案:思源宋体专业设计指南
  • 可视化 vs 终端 vs 云端:VTJ.PRO、Claude Code、Codex 三强横评
  • AI编程助手会“分期付款”藏毒?实验:65%攻击绕过了监控
  • 【Python环境】从零解读PyCharm项目结构:虚拟环境、外部库与uv包管理器
  • DQN 高估问题深度解析:3 种成因与双 DQN 等 2 类解决方案对比
  • 沃尔安智能摄像机删除后的恢复方法
  • 郑州高口碑黄金回收白银回收
  • 超参数调优进阶:Optuna/Bayesian/Early Stopping
  • 出行和货运行业正在被智能体重塑,效率提升超过50%
  • PCB布线设计 2025:3W/20H/蛇形线等5大核心规则实战解析与量化验证
  • C++ 线程安全日志系统:策略模式解耦输出端,RAII 实现 glog 风格流式日志
  • 集成隔离电源的RS-485/RS-422收发器:PCB拼接电容设计实战与EMC优化
  • nlpconnect/vit-gpt2-image-captioning 超详细入门解析
  • Java---牛客的ACM模式被卡输入输出时间,如何解决?一个模版即可解决
  • AI 音频生成流水线:异步任务要有进度和取消
  • 基于社交图谱的校园活动与交友系统(SpringBoot + Neo4j + UniApp)
  • 舟山高口碑黄金回收白银回收
  • 2025黑科技!加持会议任务提醒,快准稳颠覆你的认知?
  • Flutter 开发鸿蒙实战:Windows 环境下从 HAP 构建到四 Tab 页面运行
  • MT7621 PCIe WiFi 驱动移植:从 5.4 内核到 OpenWrt 22.03 的 3 个关键步骤
  • 对比聚类 (Contrastive Clustering) 与 SimCLR 深度对比:3 个核心差异与 2 个应用场景分析