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

STM32简介与选型

什么是STM32?

STM32是意法半导体(ST)推出的32位微控制器系列,基于ARM Cortex-M内核。

STM32系列分类

系列内核特点典型应用
STM32F0Cortex-M0入门级、低成本简单控制
STM32F1Cortex-M3主流型、性价比高通用应用
STM32F4Cortex-M4高性能、带DSP音频、图像
STM32F7Cortex-M7超高性能高端应用
STM32L系列-低功耗电池供电

STM32命名规则

以STM32F103C8T6为例:

  • STM32: 产品系列

  • F: 类型(F=通用型,L=低功耗,H=高性能)

  • 103: 子系列(103=增强型)

  • C: 引脚数(C=48pin,R=64pin,V=100pin,Z=144pin)

  • 8: Flash容量(8=64KB,B=128KB,C=256KB,E=512KB)

  • T: 封装(T=LQFP)

  • 6: 温度范围(6=-40~85℃)

选型建议

  • 初学者推荐: STM32F103C8T6(Blue Pill开发板)

  • 资源需求大: STM32F103ZET6或F4系列

  • 低功耗应用: STM32L系列


1.2 开发环境搭建

安装Keil MDK-ARM

  1. 下载Keil MDK

    • 访问官网:https://www.keil.com

    • 下载MDK-ARM(需要注册账号)

  2. 安装步骤

    1. 运行安装程序 2. 选择安装路径(建议默认) 3. 填写用户信息 4. 完成安装
  3. 安装STM32器件支持包

    • 打开Keil

    • Project → Manage → Pack Installer

    • 搜索STM32F1

    • 点击Install安装

安装ST-Link驱动

  1. 下载ST-Link驱动

  2. 连接ST-Link到电脑

  3. 安装驱动程序

验证安装

1. 打开Keil 2. Project → New μVision Project 3. 选择STM32F103C8 4. 添加启动文件 5. 编译测试

1.3 STM32CubeMX使用

什么是STM32CubeMX?

STM32CubeMX是ST官方提供的图形化配置工具,可以:

  • 图形化配置引脚

  • 配置时钟树

  • 生成初始化代码

  • 支持多种IDE

安装步骤

  1. 下载STM32CubeMX(需要注册ST账号)

  2. 安装Java运行环境(JRE)

  3. 运行安装程序

  4. 安装STM32Cube固件包

基本使用流程

  1. 新建工程

    • File → New Project

    • 选择芯片型号

  2. 配置引脚

    • 点击引脚选择功能

    • 设置输入/输出模式

  3. 配置时钟

    • Clock Configuration标签

    • 设置系统时钟频率

  4. 生成代码

    • Project → Generate Code

    • 选择IDE类型(Keil)


1.4 第一个工程:点亮LED

硬件准备

  • STM32F103C8T6开发板

  • ST-Link下载器

  • LED(板载或外接)

使用CubeMX创建工程

  1. 选择芯片

    • 新建工程,选择STM32F103C8

  2. 配置LED引脚

    • 假设LED接在PC13

    • 点击PC13,选择GPIO_Output

    • 设置标签:LED

  3. 配置时钟

    • 使用外部8MHz晶振

    • 系统时钟72MHz

  4. 生成代码

    • Project Settings设置工程名和路径

    • Toolchain选择MDK-ARM

    • Generate Code

编写代码

/* main.c */ ​ #include "main.h" ​ int main(void) { /* MCU初始化 */ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); ​ while (1) { /* 点亮LED(低电平点亮) */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(500); // 延时500ms ​ /* 熄灭LED */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(500); } }

编译下载

  1. 编译工程

    • 点击Build按钮(F7)

    • 检查错误

  2. 下载程序

    • 连接ST-Link

    • 点击Download按钮(F8)

  3. 观察结果

    • LED开始闪烁

常见问题

Q: 下载失败?

  • 检查ST-Link连接

  • 确认驱动已安装

  • 检查芯片是否被锁(读保护)

Q: LED不亮?

  • 确认LED引脚

  • 检查是高电平还是低电平点亮

  • 用万用表测量引脚电平


练习题

  1. 修改程序,让LED以不同的频率闪烁(100ms、200ms、1s)

  2. 使用两个LED,实现交替闪烁

  3. 阅读STM32F103数据手册,了解芯片资源

下一章

02-GPIO操作 - 深入学习GPIO的输入输出配置

http://www.jsqmd.com/news/707381/

相关文章:

  • Java的java.lang.foreign优化模式
  • 英语阅读_choosing a career in your future
  • UG/NX二次开发实战:如何为选择对象控件设计一个健壮的“清空”功能(附NX12.0.2.9代码)
  • 别再只把VRRP当主备了!实战配置华为/华三交换机实现负载分担,让网络带宽翻倍
  • KBase 深度解析:蚂蚁数科的金融级知识工程“发动机”
  • idea的java项目如何用exe4j来打包jar成exe并手动配置jre?
  • Transformer模型推理优化实战指南
  • 从‘锯齿波’到‘马鞍波’:一个嵌入式工程师调试异步电机FOC的实战笔记
  • 2026靠谱的黄山市网红民宿怎么选厂家推荐榜,商务型/亲子型/观景型/网红打卡型/经济型厂家选择指南 - 海棠依旧大
  • 用STM32CubeMX和HAL库5分钟搞定TCRT5000循迹小车(附完整代码)
  • Notte框架:混合智能体模式实现低成本高可靠的Web自动化
  • 法律AI实战:基于RAG与大模型微调构建智能法律助手
  • 手把手教你为UniApp微信小程序项目配置安全的WSS WebSocket连接(Vue3版)
  • 2026环保装备数字孪生平台对比选型
  • 本地AI助手AgenticSeek部署指南:私有化自主代理框架实践
  • 机器学习新手必知的10大误区与解决方案
  • JS Agent实战指南:从零构建企业级AI智能体应用
  • 2026市面上成都空调深度清洗公司排行厂家推荐榜,分体式/中央空调/商用中央空调深度清洗厂家选择指南 - 海棠依旧大
  • 告别懵圈!用示波器实测LIN总线报文帧,手把手教你分析同步间隔与校验和
  • 西门子博途V17程序块加密实战:从‘专有技术保护’到‘防拷贝’,手把手教你保护PLC代码(附避坑点)
  • Janus-Pro-7B MySQL数据库优化顾问:慢查询分析与索引建议
  • Arm CMN-600处理器事件接口设计与低功耗优化
  • 监督学习实战指南:从原理到工业应用
  • 神经网络中的微分运算:原理、实现与优化实践
  • Python asyncio 信号处理机制
  • 2026评价高的北京防水施工机构怎么选择厂家推荐榜:SBS改性沥青、高分子卷材、聚氨酯涂料、非固化橡胶沥青、自粘卷材厂家选择指南 - 海棠依旧大
  • 2026年实测10款降AI率神器:免费降低AI率,论文降AIGC轻松搞定! - 降AI实验室
  • 从战斗机翻滚到游戏角色转向:四元数如何成为3D旋转的‘隐形冠军’?
  • Android轻量级依赖注入框架illuminati:原理、实战与选型指南
  • 手把手教你用VMware搭建IC设计EDA虚拟机(含Cadence IC617/Synopsys VCS全套工具)