很多刚接触STM32的朋友,几乎都会在第一步卡住:装了STM32CubeMX又装Keil5,结果固件包下载失败、芯片包装不上、工程模板不知道选哪个、第一次烧录还报错,每一条都能把人劝退。我当年也是在这些坑里摸爬滚打过来的。这篇文章就把“STM32CubeMX + Keil5”这对黄金搭档从下载到安装、再到创建工程和烧录调试的完整流程拆开揉碎,按“宝宝级”标准一步一步带,适合完全零基础的新手照抄,也适合之前装过但没装利索的老手当排查手册。全文基于我自己多次重装系统后的实操经验,所有步骤都验证过,你跟着做基本不会翻车。
1. 为什么STM32新手入门绕不开这两个工具
1.1 CubeMX到底在帮你解决什么问题
老一代工程师写STM32程序,最痛苦的不是写逻辑代码,而是初始化。一个简单的GPIO点灯,都要查数据手册、找寄存器地址、算时钟树、配置中断优先级,光看参考手册就能看掉半条命。更别提I2C、SPI、UART、DMA这些外设混在一起时,初始化代码动辄几百行,手写一晚上,编译一堆error,第二天还得从头查。
STM32CubeMX就是ST官方出的“初始化代码生成器”。你只需要在图形界面上点一点,告诉它用哪个引脚、跑什么外设、时钟要多少MHz,它就能自动生成一整套初始化C代码,包括GPIO、时钟树、外设配置、中断处理,全部帮你安排好。你真正要写的业务逻辑,可能只是主循环里的几行。
它对新手最大的意义在于:把“读懂芯片”和“用起来芯片”这两件事解耦了。你不必先把寄存器手册背明白才能点灯,而是先点灯、再逐步理解底层原理,学习曲线友好得多。这也是现在几乎所有STM32教程都默认用CubeMX做工程入口的原因。
1.2 Keil5在工程流程里承担什么角色
CubeMX负责“生成代码”,但它不负责“编译”和“烧录”。Keil5(实际全称是MDK-ARM,我们习惯叫Keil5)才是真正把代码变成机器码、再下载到芯片里的工具。打个比方:CubeMX像设计师出图纸,Keil5像施工队照着图纸盖楼并验收。
很多新手会问:能不能不用Keil5,用别的?当然可以,现在也有STM32CubeIDE、IAR、VSCode+插件等方案,各有各的优势。但Keil5在国内生态最成熟,教程最多、例程最全、网上搜问题最容易找到答案。对于刚起步的阶段,跟着大部队走一个成熟工具链,能省掉大量自己摸索的时间。等你把整套流程跑通以后再折腾别的IDE,会轻松很多。
所以这套组合的完整链路就是:CubeMX配置芯片→生成Keil工程→Keil5编译→下载烧录→在线调试。这篇文章就是带你把这五步全部跑通。
2. 下载和安装前的准备工作
2.1 搞清楚版本关系:新版CubeMX自带Java环境
先说一个最容易踩的坑。STM32CubeMX是Java程序,老版本必须单独装Java运行环境(JRE),很多教程都会让你先装JDK,然后配环境变量,步骤又多又容易错。但STM32CubeMX从6.x版本开始,安装包里已经集成了运行时环境,不再需要你手动装Java。换句话说,你现在下载最新版CubeMX,直接一路下一步就能用,别再被“先装JDK配JAVA_HOME”的老教程误导了。
我自己现在用的是STM32CubeMX 6.10以上版本,安装完成后直接在桌面双击图标就能启动,不需要任何额外配置。如果你拿到的还是老版本安装包,或者装完后提示找不到Java,那再考虑补一个JDK 8或11(注意不用最新的JDK 17+,某些版本兼容性反而有坑),但在2025年的当下,直接下载官网最新版是最省事的。
2.2 下载渠道选择和固件包体积预判
下载STM32CubeMX,优先去ST官网(www.st.com)。进入官网后在站内搜索“STM32CubeMX”,找到软件下载页,需要注册一个ST账号才能下载,这一步属于免费注册、即时生效,填个邮箱就能收验证邮件。很多新手嫌注册麻烦,去第三方网站找安装包,结果下到带捆绑软件、甚至是修改过的安装包,轻则装机慢,重则后台弹广告。
注册完账号后,选择对应你操作系统的版本下载即可。Windows就选Windows版本,安装包大概一两百MB,速度不快但一般几分钟能下完。这里提醒一下:ST官网偶尔会要求你填写公司信息,你不用填真实的,随便填个和个人邮箱一致的内容也能通过。
下载Keil5时要注意,官网的下载地址其实分两条线:一条是Keil MDK-ARM(对应ARM芯片如STM32),另一条是Keil C51(对应8051单片机)。我们现在学的STM32要用MDK-ARM版,也就是Keil.MDK-ARM软件包,安装包大概1GB左右?其实没那么大,几百MB而已。别下成C51版,否则后面打开项目全是“找不到ARM编译器”的报错。
2.3 安装路径的黄金法则:全英文、无空格、放C盘
安装这些开发工具时,路径选择非常关键。CubeMX和Keil5都要求安装路径不能有中文、不能有空格,最好连特殊字符都别带。很多人的用户名是中文(比如“C:\Users\张三”),这就容易出问题。Meta等你,如果系统用户名是中文,最稳妥的解决办法是安装时手动把路径改到别的英文目录,比如:
- CubeMX安装到:D:\STMicroelectronics\STM32CubeMX
- Keil5安装到:D:\Keil_v5
尤其Keil5,安装路径会直接写进工程文件里,如果你装在中文路径下,打开别人的工程时经常报找不到文件或工具链错误。另外,CubeMX和Keil5的编译器、固件包、芯片包都会占用C盘不少空间,如果你C盘紧张,CubeMX和Keil5本体的安装目录都可以自定义到D盘,没问题。但默认情况下CubeMX的固件包缓存目录是C盘的用户目录,这个后面讲怎么迁移。
3. STM32CubeMX安装详解与绕不开的坑
3.1 安装步骤一步步走
STM32CubeMX的安装过程很傻瓜:双击安装包,选择语言(默认英语就行,汉化后面我会说),选安装路径,一路Next,最后完成。唯一需要注意的是安装目录里不要有中文,前文已经强调过。
安装完成后第一次启动,会让你选是否自动更新,建议选“No”或者忽略,后续手动更新就好,避免每次打开卡在检查更新上。接着它会检查本地是否已经下载了STM32芯片固件包(Firmware Package)。这一步非常关键,也是最多人卡住的地方。
所谓“固件包”,就是ST为每个芯片系列(如STM32F1、STM32F4、STM32H7)提供的HAL库和底层驱动集合。CubeMX生成代码的时候,必需依赖这个包。包不小,以最常用的STM32F1系列为例,完整下载约三四百MB,F4系列也类似。你创建一个工程,它就得从本地仓库里读取对应的固件包。
3.2 固件包下载太慢/下载失败怎么办
这个坑,可以说十个新手九个踩。CubeMX打开Help -> Manage embedded software packages(管理嵌入式软件包),你会看见一系列代码包列表,选好需要的版本,点Install,然后进度条就开始了。但ST的服务器不在国内,直接下载经常是几KB/s、时断时续,最后弹出一个Network Error或者干脆卡住不动。
我个人的解决方案有三种,按推荐程度排序:
方案一:设置代理镜像源。新版CubeMX支持在软件里配置下载源,你可以把固件包的下载地址切换到一些国内镜像(比如部分高校的ST镜像站),速度和稳定性会好很多。不过镜像站列表可能变动,需要自己搜索当前可用的地址。
方案二:手动下载固件包zip文件,然后离线导入。这是最稳的办法。你在电脑上用浏览器,打开ST的固件包下载页,找到对应的压缩包(比如en.stm32CubeF1.zip就是F1系列的固件包),用下载工具或浏览器下载。文件较大,但浏览器下载通常比CubeMX内部的下载器稳定。下载完成后,在CubeMX的Manage embedded software packages窗口里,点击“From Local”(从本地加载),选择你下载好的zip文件,它会自动解压并导入本地仓库。
方案三:直接把别人下载好的本地固件包拷贝过来。CubeMX的固件包虽然默认存放在C:\Users\你的用户名\STM32Cube\Repository文件夹下。如果你身边有人已经装好了对应固件包,把整个Repository文件夹拷过来覆盖到你自己电脑的同名路径下,重新打开CubeMX,它会直接识别到本地已有固件包,然后标成已安装。这个方法完全可行,我帮同事解决过多次。
优先级上,我推荐方案二。因为每次新建项目都要依赖固件包,你要是每次都连ST服务器去踩“下载失败”的坑,心态直接炸。
3.3 双击没反应、打不开的问题排查
CubeMX装完了,双击桌面图标没反应,这是我被问过最多的问题之一。通常原因有几种:
- 杀毒软件拦截:某些杀软会把CubeMX的启动进程误判,直接给它隔离了。解决办法是把安装目录加入杀软白名单,重新启动。
- Java环境冲突:如果你电脑里装了多个版本Java,且版本过新或过旧,有可能导致CubeMX无法启动。这时打开安装目录下的日志文件(通常在配置目录下),常能看到明显的异常信息。
- 安装文件确实没解压完:有些精简版安装包或断点续传下载损坏的安装包,装完后关键文件缺失。重新去官网下完整包再装一次。
还有一种比较隐蔽的情况:你之前装过旧版本,卸载不干净,注册表残留导致新版本启动失败。这种建议彻底卸载后,清理注册表相关项,再重装。
遇到这种问题,第一件事不是重装,而是去CubeMX安装目录下的日志文件夹里看错误记录。日志就像黑匣子,能告诉你到底是什么原因崩的,比自己瞎猜高效得多。
3.4 界面汉化与中文字体问题
CubeMX默认是英文界面,对国内新手确实不太友好。好消息是新版CubeMX可以直接在软件内更换语言:打开Help -> Preferences(首选项),找到语言Language选项,选择“中文(简体)”,重启软件就能看到中文界面。注意,汉化只改变界面语言,不改变代码生成逻辑,所以对工程没有影响。
如果你下载的是有些教程提供的“汉化包”,本质上是往CubeMX安装目录里放一个中文语言资源文件,也能用,但每次升级CubeMX后都会失效,需要重新打补丁。相比之下,我推荐直接用内置语言设置,省去后续维护的麻烦。
汉化後你会发现,配置界面里的术语比如“时钟配置”“引脚配置”“外设参数”都变成中文,新手理解起来确实快很多,但这里要提醒一下:很多网上的教程和论坛问答仍然用英文术语(GPIO、UART、DMA),你在汉化界面下可能一下子对应不上。我的建议是:刚开始可以开着汉化帮助理解,熟练之后切回英文界面,因为英文术语才是全球通用的沟通语言。
4. Keil5安装:C51和MDK共存与正版授权
4.1 MDK和C51到底是不是同一个Keil5
很多新手在网上搜“Keil5下载”,结果看到一堆版本名词:MDK-ARM、C51、Keil uVision、Keil 5等等,直接懵圈。简单说:
- C51版:专门用来开发8051单片机(比如STC89C52),本质上是另一套工具链。
- MDK-ARM版:支持ARM内核芯片,STM32就是ARM Cortex-M内核,所以要用它。
- 两个版本安装界面长得一模一样,因为底层都是Keil的uVision IDE外壳,但编译器内核完全不同。
如果你只想学STM32,下载MDK-ARM版就够了。但如果你在学校上课,既要学51又要学STM32,那就需要两个都装。这里有个经典问题:能不能把MDK和C51装在一起?能,但安装目录必须分开。有些教程让你把C51也装到Keil5的同一个目录,会导致其中一个工具链无法正常工作,因为它们的编译器路径互相覆盖。
正确做法是:
- C51安装到:D:\Keil_C51
- MDK-ARM安装到:D:\Keil_MDK
两个独立目录,互不干扰。用哪个项目就用哪个版本打开,工程文件后缀虽然都是.uvprojx,但工具链会自动对应。桌面快捷方式也会有两个图标,只是名字都叫“Keil uVision5”,你可以手动把其中一个改名成“Keil5 MDK”方便区分。
4.2 Keil5安装步骤与芯片支持包
MDK-ARM的安装过程本身不算复杂:双击安装包,选安装路径(同样不能有中文空格),填注册信息——用户名、公司名随便填英文即可,License那一栏不用填,等安装完再激活。安装到第一步完成后,Keil还没法直接用,因为你缺一步关键操作:安装STM32的芯片支持包(Device Family Pack)。
打开Keil5,你会看到一个类似Package Installer的管理界面;如果没有,去工具栏上找到Pack Installer按钮。第一次打开它需要联网,会自动去Keil官网拉取芯片包列表。你需要在搜索框里输入“STM32F1”或“STM32F4”等关键字,找到对应支持包,点击Install。
这个过程中大概率会遇到跟CubeMX固件包一样的下载慢或失败问题。因为芯片包同样放在国外服务器。解决办法有两个:一是用官网下载的离线pack文件(后缀.pack),双击后Keil会自动导入;二是在Pack Installer的配置里把服务器地址改为国内镜像。前一种办法更省心,尤其当你在课堂上需要拷贝给同学时,直接传一个.pack文件最方便。
芯片包的版本我建议选最新稳定版,但它会包含全部同系列芯片,比如F1包包含F100、F101、F102、F103等,体积大概四五百MB,下载时得有心理准备。
4.3 关于激活和“注册机”的态度
这部分我必须多说两句,因为“Keil5注册机”在搜索热词里出现了太多次。我必须直说:不建议使用注册机或任何破解方式给Keil激活。
很多人觉得Keil太贵,学生没钱,于是去找注册机,但这里面风险很大。网上流传的“注册机”大多是从不明来源下载的,很多捆绑了木马病毒。你身边如果有人用过这类文件,他们多半遇到过杀毒软件报警、电脑变卡、账号被盗的情况。你的源代码和毕业设计代码都在Keil工程里,一旦中招,损失远超一个软件授权的费用。
实际上,对于学生和学习用途,Keil官方有明确的评估版(Evaluation Version)。装上之后,编译的代码体积如果不超过32KB,就可以长期免费使用,这个限制对于绝大多数入门级学习——比如点灯、跑串口、做传感器读取、写小型嵌入式裸机程序——是完全够用的。你真正把STM32学到需要做超过32KB代码的项目时,大概率已经有条件申请正版教育授权,或者所在学校实验室已经提供正版License了。
所以新手阶段完全不用纠结激活问题,直接用评估版学,把精力花在技术本身。等以后真的需要商业开发或超大工程时,再通过正规渠道购买授权即可。
4.4 Keil5如何“卸载干净”:老司机才有体会
以后你可能会因为各种原因要卸载Keil5重装,比如装坏了、版本冲突、系统升级等等。Keil5卸载不干净是常态,直接控制面板卸载后,注册表里残留的路径信息、许可证信息仍在,重装以后可能出现“找不到工具链”或者激活信息冲突。
我的卸载方法是三步走:
- 先用Windows自带的“程序和功能”卸载Keil MDK。
- 手动删除安装目录下的残留文件(默认可能是C:\Keil_v5或你自定义的D:\Keil_MDK)。
- 用注册表编辑器(regedit)删除HKEY_CURRENT_USER\SOFTWARE\Keil相关项。
完成后重启电脑,再安装新版。这样才能保证一次装成,不用反反复复折腾。有人会推荐第三方卸载工具,“顺便”把注册表垃圾清干净,也可以用,但我一般手动处理,可控性更强。
5. 用CubeMX生成第一个工程的完整流程
5.1 配置引脚和时钟:真正动手的时刻
装完两个软件、下好固件包和芯片包,终于可以正经创建一个工程了。打开CubeMX,点击File -> New Project,在芯片选择界面搜索“STM32F103C8”这种常用型号,双击后进入主配置界面。
界面布局其实很直观:中间是芯片引脚图,你直接点击引脚就可以分配功能;左侧是外设树;正上方有时钟配置页。以最经典的“点灯”为例,找个引脚设为GPIO_Output(比如PC13,STM32F103C8上板载LED常用这个引脚),然后在GPIO模块里把输出模式改成Push Pull、速度改成Low或Medium。
接着看时钟配置。CubeMX会自动生成一套默认时钟树,你只需要把HCLK那里填成你想要的最大频率(F103C8最高72MHz),软件会自动帮你算好各种倍频和分频系数,遇到红色提示说明当前配置超出极限,需要微调。这个一键生成时钟树的能力,正是CubeMX最值钱的地方。
5.2 生成工程时“MDK-ARM”选项为什么不见了
代码配置完成后,点击Project -> Generate Code,会弹出一个对话框让你选Toolchain/IDE(工具链/IDE)。正常应该能看到“MDK-ARM”选项,选它生成Keil工程。但很多新手到了这一步,下拉列表里只有“STM32CubeIDE”或者“Makefile”,就是没有MDK-ARM,导致生成的工程没法用Keil打开。
原因其实很简单:CubeMX要生成某个工具链的工程,必须在Toolchain文件夹里预置模板文件夹,而这些模板文件夹是和CubeMX安装包一起分发的。如果你安装CubeMX时开了杀毒软件,或者安装过程中用了精简路径导致模板文件没解压,Toolchain文件夹就会缺失,MDK-ARM选项就消失了。
解决思路:
- 检查CubeMX安装目录下,是否有一个“Utilities/STM32CubeIDE”或类似名字的文件夹。若找不到MDK模板,说明模板缺失。
- 最直接的办法是重装CubeMX,安装时暂时关闭杀毒软件、以管理员身份运行。
- 另一个笨但有效的办法是找同版本CubeMX的电脑,把整个Toolchain文件夹拷过来覆盖到安装目录下。
这个坑的迷惑性在于:你觉得CubeMX装得挺顺利的,也没报错,但生成工程时功能就少了。好在确认根因后,修复下来其实只要几分钟。
5.3 在Keil里编译跑通第一个程序
生成出来的工程默认带一个.uvprojx后缀的Keil工程文件,双击打开就是Keil5界面。第一次打开,左侧Project栏里能看到一堆源文件:main.c、gpio.c、stm32f1xx_hal_msp.c等等,这些都是CubeMX自动生成好的代码骨架。
点一下编译按钮(就是那个Build图标,或者按F7),等它输出“0 Error(s)”就是编译通过。然后接上ST-Link或者J-Link,点下载按钮(LOAD图标),程序就烧进芯片了。如果一切顺利,LED应该直接亮起来,第一个STM32程序就算跑通了。
这里有个非常常见的坑:第一次用Keil打开CubeMX生成的工程,编译时提示“unknow type name”“core_cm3.h not found”这类错误。这不是你的代码有问题,而是芯片支持包没装好,或者Keil不知道去哪找CMSIS头文件。回去确认第4.2节的芯片包安装是否成功。
6. 烧录与仿真:J-Link克隆警告和烧录失败排查
6.1 J-Link克隆警告是怎么来的,如何应对
很多人在用J-Link在线仿真调试时,Keil会弹出一段红色警告,大意说检测到“J-Link clone”(克隆/仿制产品)。这个警告很容易吓到新手,以为自己的开发板或仿真器坏了。
先解释原理:J-Link是SEGGER公司的正版调试器,但市面上流通的大部分几十块钱的“J-Link V8/V9”,其实都是山寨克隆版,硬件上做了兼容,固件也是盗版的。SEGGER在较高版本的驱动里加入了克隆检测逻辑,检测到假固件就弹警告,甚至有些新固件直接拒绝工作。
应对方式有几种:
- 无视警告,继续用。如果警告后面程序还能正常下载调试,很多老手都会直接忽略,反正能用。
- 换用旧版J-Link驱动。部分克隆固件兼容老驱动,旧驱动检测逻辑弱一些,但不推荐,旧版驱动可能有其他安全性问题。
- 换ST-Link。这是最推荐的方式。STM32开发板板上自带的ST-Link/V2是ST官方调试器,价格便宜、驱动稳定、跟STM32生态完美配合。在Keil的Options for Target -> Debug 设置里把调试器选成ST-Link,就能绕开所有J-Link克隆的坑。
顺便说一句:花几十块买个山寨J-Link,不如用好了板载ST-Link。后者不仅合法,还不会三天两头闹脾气。
6.2 烧录失败常见原因清单
拖了前三个小时烧录失败,可能的原因实在太多,我列一个自己排查时用的清单,按大概率到小概率排列:
- 芯片没接对供电或没接GND:开发板没插USB或者电池没装,芯片根本不上电,自然检测不到。先看板子电源指示灯亮不亮。
- 调试器驱动没装好:插上ST-Link后,设备管理器里如果看到黄色感叹号,说明驱动没装好。去ST官网下载“STM32 ST-LINK Utility”或最新驱动装上。
- Keil的Debug设置里选错了调试器:有人明明用的是ST-Link,却选成了J-Link,自然找不到目标芯片。进Options -> Debug里切换并确认。
- 芯片选择的型号和实际板子不同:比如板子上的芯片是STM32F103C8T6,但CubeMX里选成了F103RCT6,烧录时Flash算法不匹配,也会失败。
- 读保护和写保护:以前烧录过程异常可能导致芯片进入保护状态,Keil提示“RDDI-DAP Error”这一类。可以先用“STM32 ST-LINK Utility”整片擦除解除保护。
- 电压不匹配:有些板子核心电压是1.8V,调试器默认3.3V供电,烧录也会白屏或失败。
按这个清单排查,百分之九十的烧录失败都能解决。再不行,换一根USB线试一下——别笑,我被“线是坏线”坑过不止一次,数据线只有充电功能没有数据传输功能这种事情太常见了。
6.3 Keil左侧Project目录消失怎么恢复
用Keil用着用着,左侧的工程文件树突然不见了,有人吓一跳以为工程坏了。其实这只是窗口布局被误操作关闭了。恢复方法非常简单:在Keil菜单栏选View -> Project Window,或者直接按快捷键Alt+0,左侧目录就回来了。
这个问题之所以会频繁被搜索,是因为Keil的默认工作区布局偶尔会在打开大工程或者频繁切换项目后“丢”掉侧边栏。这种问题不是Bug,纯粹是界面状态保存的问题。你也可以拖动左侧栏的边界来调整宽度,把自己习惯的布局固定下来,Keil会记忆你最后关闭时的布局状态。
7. 进阶玩法:VSCode搭配Keil5的工作流
7.1 为什么用Keil5的人还会去折腾VSCode
当你写代码量慢慢变大以后,会觉得Keil5的编辑器用起来有点“老古董”,语法高亮一般、自动补全弱、写代码没有VSCode那种丝滑感。这时候很多人就开始折腾:能不能用VSCode写代码,用Keil5编译烧录?
答案是能,而且这条路相当成熟。我用VSCode搭配Keil5写了一段时间的工程,体验确实是质的提升,尤其是查看代码定义、跳转函数、格式化、配合Git管理版本这些方面,VSCode的生态优势非常明显。
配置方案的原理其实很简单:VSCode本质上只是一个编辑器,它通过调用Keil的编译器armcc/armclang来编译,通过Keil的工程文件来组织代码。你可以在VSCode里安装嵌入式相关插件,比如“Embedded IDE”或“C/C++”(MS-CPP),再配合Keil的生成器,就能在编辑器中间接编译和下载。
7.2 基础配置思路和踩坑提醒
最快速的配置方式是在VSCode里安装Embedded IDE插件,它天然支持Keil工程文件(.uvprojx)。你只需要用VSCode打开包含.uvprojx文件的文件夹,插件就能识别出Keil工程,然后在插件设置里指定Keil的安装路径(比如D:\Keil_MDK)。接下来就能在VSCode里点击编译按钮,实际调用的是Keil的编译器。
但有几个坑我必须提前说:
- 环境变量:VSCode需要能找到Keil的注册信息,显然前提是Keil已经正确安装并激活。如果你Keil本身装得有问题,VSCode配得再好也白搭。
- 编译器版本匹配:Keil5既有AC5(armcc)也有AC6(armclang),Embedded IDE插件对两者支持都不错,但如果你工程里用的是ST的HAL库,最好固定AC5或AC6之一,不要来回切换。
- 第一次配置别贪多:先只装Embedded IDE和C/C++两个插件,跑通“VSCode里改代码→点编译→Keil里烧录”的流程,再逐渐添加代码格式化、Git插件这些锦上添花的。
有一个反直觉的现象是:配置好VSCode后,很多人反而发现Keil不能删。因为VSCode只是“借”了Keil的编译器和调试器,Keil本体才是工具链核心。所以你依然需要保留Keil安装,把它当成一个后台编译引擎。
我个人的建议是:新手阶段老老实实先用Keil5完成至少两三个完整的工程,包括编译、烧录、在线调试,养成基本的工程概念后,再去折腾VSCode搭配Keil这种进阶工作流。别一上来就双工具叠加,出问题后排查成本更高。
最后分享一个小技巧,也算是我踩了无数次坑以后总结的经验:每次安装或重装这些开发工具之前,先看一眼电脑的系统环境,确保用户名和安装路径都是纯英文;然后关闭杀毒软件实时防护,以管理员身份运行安装包;装完以后再打开杀毒软件。这个顺序能避免掉很多“莫名其妙”的故障。等到你把这套流程完完整整走过一遍,回头看那些劝退新手的下载失败、编译报错、烧录警告,其实就是工具链里几个固定的坎,跨过去之后,往后的嵌入式之路会顺畅很多。