尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

STM32开发环境搭建:STM32CubeMX与Keil5安装避坑指南

发布时间:2026/9/26 1:52:01

资讯中心
01
ARTICLE

STM32开发环境搭建:STM32CubeMX与Keil5安装避坑指南

STM32开发环境搭建:STM32CubeMX与Keil5安装避坑指南
1. 准备工作与工具认知1.1 这套组合到底是干嘛的很多刚接触STM32的朋友第一次听到“STM32CubeMX Keil5”这个组合会有点懵这俩不是一个东西吗为什么要装两个其实它们的职责完全不同。STM32CubeMX是ST官方出的图形化配置工具用来帮你选择芯片型号、配置引脚功能、设置时钟树、使能外设串口、SPI、I2C、ADC等然后自动生成初始化代码。你只需要用鼠标点一点它就把底层那些容易写错的地方全给你处理好了。Keil5准确说是MDK-ARM则是编译、烧录和调试的集成开发环境负责把你写的业务逻辑代码编译成芯片能运行的机器码通过下载器烧进STM32还能在线打断点调试。我在带新手的过程里发现大家最容易犯的错就是把“生成代码”和“编译运行”混为一谈。你用CubeMX画完电路配置生成的只是一份“骨架代码”这份代码要拿到Keil里打开、编译、下载最终才能在开发板上跑起来。这两个工具是前后接力关系缺一不可。这套环境适合谁如果你是大一电子/嵌入式专业的学生、刚转入单片机开发的在职工程师、或者纯粹自己买了一块板子想折腾的爱好者这篇文章都适用。我会把安装过程中那些“教程里不会写但新人必然会踩”的坑都列出来帮你少走几个小时的弯路。1.2 安装前需要准备的物料清单先别急着双击安装包动手之前把以下几样东西备齐不然中途很容易卡住一台Windows电脑Win10/Win11都可以64位系统最佳。Win7老电脑也能装但新版CubeMX和Keil对Win7的支持已经逐渐变弱如果你还在用Win7最好装老一版的软件。一块STM32开发板。最推荐的是STM32F103C8T6的“蓝板”或者Nucleo系列因为资料多、成本低网上随便一搜就是大把例程。手里没有板子的也没关系CubeMX配置逻辑是通用的你先装好环境、能编译出hex文件也算入门了一半。一根USB数据线。这里有个很容易忽略的坑很多Type-C或Micro-USB线是“纯充电线”里面没有数据引脚插上电脑完全识别不到设备。建议直接找手机的“数据线”而不是充电线。STM32F103C8T6蓝板用的是Micro-USB接口Nucleo板本身自带ST-Link调试器用Type-C或Mini-USB直接连电脑就行。稳定的网络环境。后面CubeMX首次打开需要下载芯片固件支持包Keil5的Pack Installer也需要联网拉取STM32芯片支持包这一步对网络要求比较高。如果你在实验室、公司的内网环境很可能会遇到下载超时后面我会单独说怎么处理。1.3 版本选择建议别一上来就装最新版关于软件版本我强烈建议你遵循一个原则够用、稳定、教程对得上。STM32CubeMX目前主流版本是6.x安装包自带Java运行时环境不需要你再单独装JDK——这是6.x相比5.x最大的变化对新手友好很多。如果你看到网上老教程说“STM32CubeMX需要先装Java”那是针对5.x及更早版本的6.x完全不需要别被旧教程带偏。Keil5这边官方叫“Keil MDK-ARM”不要装成“Keil C51”。这两个是完全不同的产品线C51是给8051单片机用的STM32属于ARM Cortex-M内核必须用MDK-ARM版本。很多人装完发现“为啥我的Keil里找不到STM32芯片”十有八九就是装错了版本。版本号方面MDK-ARM老版本5.20到5.37我都用过日常开发区别不大建议直接装5.36以后的新版本因为带新版Arm Compiler 6编译效率高一些。但也不要盲目追最新的每一个小补丁版本新版本偶尔会有一些莫名其妙的兼容性问题。我目前推荐5.36或5.37这个区间的稳定版本。2. STM32CubeMX完整安装全流程2.1 从官方渠道下载安装包打开搜索引擎搜“STM32CubeMX官网”或者直接输入ST的官方网址找到“STM32CubeMX”的产品页面。注意认准域名是st.com结尾的官网别去了第三方下载站。第三方站点的安装包经常捆绑垃圾软件而且版本往往是旧的甚至有可能被植入恶意代码。打开官网产品页面后选择“Get Software”或“Download”按钮。ST官网通常要求你注册一个ST账号这个账号是免费的几分钟就能搞定。很多新手看到“注册”就不想弄了我劝你别懒这一步因为后面下载固件包、申请license试用都会用到同一个账号。下载的时候记得选Windows版本文件是一个类似en.stm32cubemx-win_v6-11-1.zip的压缩包注意它是个zip不是exe。下载完成后先解压解压出来的文件夹里会有一个SetupSTM32CubeMX.exe或者类似的文件双击开始安装。安装过程本身很无聊一路Next选安装路径。这里有一个必须强调的硬性要求安装路径一定不要有中文。举个例子你可以装到D:\STM32CubeMX但绝对不要装到D:\软件\STM32CubeMX这种目录。STM32CubeMX和Keil对路径中的中文字符兼容性时好时坏一旦出问题表现是打不开工程、生成代码失败、固件包下载不了排查起来让人非常痛苦。说的极端一点所有嵌入式开发工具都建议装到纯英文、没有空格的路径下。2.2 首次启动和Workspace路径设置安装完之后第一次启动CubeMX它会问你要一个Workspace路径。这个Workspace是用来存放你以后的CubeMX工程文件的默认在C盘的用户目录下。我建议你改到D盘建一个英文路径比如D:\STM32CubeMX_Workspace理由同样是为了避免C盘空间耗尽、路径带中文等问题。设置完路径后主界面会出来。刚开始你会觉得界面有点复杂左边是芯片选择列表右边是信息和帮助区顶部菜单栏有一堆功能。第一次用不需要害怕你只需要认识一个核心入口在左边“Board Selector/ MCU Selector”区域输入芯片型号比如输入STM32F103C8T6然后双击选中就会进入图形化配置界面。这里会遇到第一个可能的拦路虎如果是6.x版本打开配置界面时如果本地没有对应的芯片固件支持包CubeMX会提示你是否在线下载英文叫“Download”。新手直接点下载就行等它下载完自动安装。但如果你点击下载后进度条纹丝不动、一直转圈十有八九是网络问题。接下来细说怎么处理。2.3 固件包下载失败的三种自救方案芯片固件支持包Firmware PackageFP是CubeMX生成代码所需的底层库。缺少它你连工程都建不了。所以这一步非常关键。第一种方案检查网络环境后重试。校园网、公司网经常拦截来自国外服务器的下载请求你可以试着连手机热点下载成功率会高很多。第二种方案手动下载固件包并放到本地。打开浏览器访问ST官网的“STM32Cube MCU Package”页面找到你需要的那一款比如STM32F1系列对应的是STM32CubeF1下载STM32Cube_FW_F1_V1.8.5.zip这类包。然后把zip文件放进电脑某个目录在CubeMX的Help-Manage embedded software packages界面里点击“From Local”或“Import from folder”选中你下载的zip文件它就会完成导入安装。这个方案在国外服务器访问不畅时非常管用。第三种方案设置代理。以上就是第三种但我不展开说很多读者会遇到。总之记住一个原则下载固件包的问题大多是网络问题多换几种网络环境试试实在不行就手动下载本地导入肯定能解决。2.4 关于“汉化”的几句话网上搜索“STM32CubeMX汉化”能找到很多第三方汉化包但我个人建议不要汉化。原因有两点第一第三方汉化包和软件版本不匹配的话轻则界面不全重则软件崩溃第二CubeMX的英文界面其实非常有限核心单词就几十个Pinout引脚、Clock Configuration时钟配置、Project Manager项目管理、Generate Code生成代码。你用一次两次就熟了完全不需要汉化。嵌入式开发中大量资料本来就是英文的早点适应英文工具以后看芯片手册、查数据手册都会轻松很多。3. Keil5MDK-ARM安装完整全流程3.1 安装前必须搞清楚的版本坑Keil5在圈内一般就是指“Keil MDK-ARM”这个版本但很多人下载的时候会搜到“Keil C51”这是给8051单片机用的另一个独立软件。如果你下载的是C51版安装后打开界面会发现里面根本没有STM32相关的芯片选项你会误以为自己安装失败。正确姿势是直接去ARM官网或Keil官网的MDK-ARM下载页面下载安装包。文件通常叫MDK536.EXE或者Keil.MDK.5.36.exe这类名字。这里还有一个经典问题能不能让Keil5同时支持C51和STM32答案是这两个版本的内核不一样不能装在同一目录里“二合一”。网上有流传的一些兼容包、合并工具本质上是在两个不同目录分别装好后做文件层面的手工整理非常折腾而且版本一升级就失效。如果你手头既要玩51又要玩STM32我的建议是安装两次一次MDK-ARM一次C51装到两个不同的目录桌面放两个快捷方式互不干扰。别去追求“一个Keil搞定全部”省那点空间不值得。3.2 安装过程几步走拿到安装包后右键选择“以管理员身份运行”。安装路径同样要求纯英文比如D:\MDK-ARM别用默认的C盘也行但路径中绝对不能有中文。安装过程中它会问你你是否要安装“ULINK Driver”等调试器驱动保持默认全选即可这些驱动后面烧录时会用到。这里有个细节MDK-ARM本体装完后你打开它迎面而来的不是熟悉的Keil界面而是一个“Pack Installer”窗口。如果你不小心把这个窗口关了可以通过Keil菜单栏的Tools-Pack Installer重新打开。Pack Installer的作用是管理各种芯片的支持包我们后面要用它给Keil装上STM32系列芯片的描述文件和数据包。3.3 给Keil5添加STM32芯片支持包Device Pack这一步是新手最容易忽略、又最关键的步骤。你打开Pack Installer后会看到一大堆厂商列表找到STMicroelectronics这一条点开它展开后会看到STM32F1 Series之类的子项。在每一项后面有个“Install”按钮点一下就开始下载安装对应的芯片支持包。这里我建议只安装你用到的系列就够了。比如你用的是STM32F103C8T6那就只装STM32F1 Series DFP即可不必把F0、F3、F4、H7全装了。全装会占用大量时间而且PACK包的体积不小纯粹浪费时间。如果你用的是别的型号比如STM32F407就找STM32F4 Series DFP。下载安装芯片支持包同样可能遇到网络不给力的问题。和CubeMX固件包类似你可以去Keil官网的Device Pack页面下载对应.pack离线包然后在Pack Installer界面右下角选“File” - “Import…”导入离线pack文件。离线包在官网的下载速度有时候比在软件里直接下载还快强烈建议网络不畅的同学走这条路。安装完成后回到Keil主界面新建工程点击Project-New µVision Project然后在弹出的选择框里展开STMicroelectronics你会看到STM32F1 Series下面列出各种型号输入STM32F103C8快速筛选选中它。如果这一步你能顺利看到型号列表说明支持包安装成功了。3.4 Keil5的授权问题怎么处理关于软件授权我只能说有两点一是Keil MDK官方提供30天评估版你装完后什么都不用做直接能用30天用来学习入门完全足够了二是如果你是学生或者个人开发者可以关注厂商的教育授权计划有些还有免费或优惠渠道。正版授权的流程是在Keil的File-License Management里输入你的订单号或激活码然后在线激活。我也知道网上很多教程会让你“下载注册机”我劝你别碰那东西来历不明、捆绑病毒的案例太多以前还有开发者编译的代码被篡改后导致电脑中毒的事情。嵌入式开发绕不开知识产权的问题如果你只是学习30天试用期用完重新安装一次系统环境或者申请官方试用续期都比冒电脑风险去用破解要靠谱。这篇教程只谈技术安装不涉及任何破解内容。3.5 安装ST-Link驱动很多开发板自带ST-Link/V2下载器比如Nucleo板或者你单独买了一个十几块钱的ST-Link/V2的小棒子插上电脑后Windows可能会弹出“设备驱动未安装成功”。不装好驱动后面Keil烧录时百分百提示“No Target Connected”找不到芯片。去ST官网搜索“ST-Link USB Driver”或“STSW-LINK009”下载驱动包解压运行ST-Link_USBDriver.exe安装即可。安装完成后把ST-Link插入电脑USB口在设备管理器里能看到STM32 ST-Link相关的设备就说明驱动OK了。4. 第一个STM32工程从CubeMX生成到Keil烧录4.1 在CubeMX里新建工程并配置引脚环境都装好后我们直接实战一次。打开STM32CubeMX在MCU选择界面输入STM32F103C8双击选中芯片进入Pinout配置界面。这个界面长得像一块芯片的引脚图左边一堆引脚标着默认功能。我们的第一个目标很简单点亮开发板上的LED。以最常见的STM32F103C8T6蓝板为例板上有一个LED接在PC13引脚少数板子是PB2或PA1你看下板子丝印或者卖家资料确认所以我们把PC13这个引脚配置为GPIO输出。鼠标左键点击PC13引脚在出现的菜单中选择GPIO_Output。然后在左侧栏目里找到System Core-GPIO展开后可以看到PC13的配置项GPIO output level选High或Low都行GPIO mode选Output Push Pull速度无所谓。LED点亮逻辑取决于板子电路低电平点亮还是高电平点亮可以在代码里灵活调整。4.2 时钟树配置别再被“72MHz”吓到点击页面上方的“Clock Configuration”标签进入时钟树配置界面。这里新手容易一脸迷茫但其实只需要三步把HSE外部高速晶振设为Crystal/Ceramic Resonator然后把PLL Source设为HSE最后把System Clock MUX系统时钟选择设为PLL在HCLK输入框直接输入72回车。软件会自动帮你计算好分频倍频并提示你参数是否合法。HCLK也就是系统主频跑到72MHz这是STM32F103的最高频率。为什么这里要选HSE而不是HSI因为板子上通常有8MHz的外部晶振用它做时钟源比芯片内部的HSI精准得多。串口通信、ADC采样这些对时钟精度敏感的功能最好都走外部晶振。当然如果你的板子没有外部晶振非常少见就保持默认HSI功能也能跑。4.3 生成MDK-ARM工程代码在生成代码前先设置Project Manager。点击页面上部的“Project Manager”标签在Project选项卡里设置工程名称比如LED_Test路径就是你之前设置的Workspace。这里有一个马虎不得的地方Toolchain / IDE那一栏必须下拉选MDK-ARM V5因为我们要用Keil5打开选V5对应的工程文件格式更兼容。如果你装了最新版Keil且编译器是AC6也可以选MDK-ARM V5然后在Keil里自己切换编译器问题不大。设置完成后点击右上角的Generate Code按钮。如果之前固件包安装正常你会看到右下角提示生成完成还可能弹出一个“Open Project”的按钮点它就直接打开Keil工程了。4.4 在Keil5里写第一行用户代码Keil打开工程后左侧Project栏找到Application/User/Core下的main.c双击打开。找到int main(void)函数里的while (1)循环在里面加点亮LED的代码。最经典的做法是先在main函数外定义一个延时函数或者直接用HAL库的HAL_Delay/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); HAL_Delay(500); } /* USER CODE END WHILE */写完代码后点编译按钮快捷键F7。如果一切顺利底部输出窗口会显示0 Error, 0 Warning。看到这个结果说明代码编译已经没有问题了。4.5 配置下载器并烧录接下来配置烧录方式。点菜单栏的魔术棒Options for Target切到Debug选项卡。左侧选择ST-Link Debugger然后点旁边的Settings在弹出窗口里如果能看到IDCODE有值说明ST-Link已经识别到芯片了。把右下角Flash Download里的Reset and Run勾选上这样程序烧录后会自动复位运行不用你手动按复位键。回到主界面把ST-Link接上开发板板子供电可以是USB供电或ST-Link供电部分ST-Link引出3.3V。然后点“LOAD”按钮快捷键F8下载完成后如果看到窗口提示Application running并且板上的LED开始以一秒两次的频率闪烁恭喜你整个环境已经彻底打通了。5. 常见问题速查与避坑心得5.1 问题速查表安装这套环境的过程中新手几乎必踩以下几个坑我按症状整理了一张排查表现象可能原因解决方向CubeMX双击没反应缺少JRE / 版本过旧 / 路径中文换6.x版本确认安装路径纯英文尝试管理员身份运行CubeMX新建工程时提示Download固件包失败网络访问国外服务器超时手机热点重试官网手动下载zip本地导入Keil里找不到STM32芯片装成了C51版 / 未安装Device Pack换成MDK-ARM版本Pack Installer里装STM32F1/F4 DFP编译报错Target uses ARM-Compiler编译器版本与工程设置不符魔术棒 - Target - 切换AC5或AC6编译器烧录时报No Target ConnectedST-Link驱动未装 / 接线错误 / 供电不足重装ST-Link驱动检查SWD的CLK、DIO、GND、3V3四根线给板子单独供电烧录时报RDDI-DAP Error芯片进入低功耗模式或接线问题按住板子复位键再烧录或者把BOOT0拉高再试程序烧了但板子没反应引脚认错 / 时钟没配好 / 没有勾Reset and Run核对板子LED引脚重新配置时钟树勾选Reset and Run后重新烧录5.2 安装顺序与个人使用心得我在实际工作中安装这套环境的顺序是先装Keil MDK-ARM再装STM32CubeMX。没有严格的先后要求但先装Keil可以先把它庞大的支持包装好后面CubeMX生成代码后打开工程会感觉流程更顺。另外Keil的安装时间比较久可以先让它后台装着同时去官网下载CubeMX安装包节约时间。还有一个小技巧CubeMX生成代码后不要手动去改那些/* USER CODE BEGIN */和/* USER CODE END */之外的内容。HAL库把你每次重新生成代码时需要的保护区留好了如果你改了保护区以外的内容下次在CubeMX里改动配置并点击Generate Code你改的东西会被直接覆盖掉。正确做法把自己的业务代码永远写在USER CODE注释区之间这是无数人用血泪换来的教训。最后再分享一个经验刚装完环境后建议把CubeMX的工程文件夹和Keil工程文件夹做一个备份归档。万一后面电脑出问题或者自己乱改配置把工程搞崩了有一个兜底的干净模板重新开始只需要几分钟。另外每次烧录前保证板子和ST-Link之间的杜邦线尽量短接触不良的杜邦线是很多“为什么找不到芯片”问题的罪魁祸首。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。