ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Keil5安装与STM32开发环境配置全攻略:从激活到烧录调试

Keil5安装与STM32开发环境配置全攻略:从激活到烧录调试 1. 环境准备与安装前的关键检查1.1 为什么安装前要先做系统体检很多人拿到 Keil5 安装包的第一反应就是双击运行一路 Next 到底结果装完发现要么编译器报错要么芯片包死活装不上要么烧录器识别不了。我踩过最惨的一次坑是在一台老笔记本上装 MDK装完打开工程直接提示缺少 ARMCC 组件折腾了大半天才发现是系统里残留了旧版本的注册表项没清干净。所以在你动手之前先花五分钟做几项检查能帮你省下后面几个小时甚至一整天的排查时间。系统版本与位数确认Windows18-HD19 这个环境本质上是基于 Windows 内核的定制版本底层兼容性跟常规 Windows 10/11 基本一致。你需要确认系统是 64 位还是 32 位因为 Keil MDK 从 5.30 版本之后已经不再提供 32 位安装包了。查看方式很简单在“此电脑”上右键选择属性看“系统类型”那一栏。如果是 32 位系统你只能选择 MDK 5.29 或更早的版本但那些版本对新型号 STM32 芯片的支持会打折扣。磁盘空间规划Keil5 本体安装大约需要 2GB 左右但如果你同时要装 C51 和 ARM 两套工具链再加上各种芯片包Device Family Pack总占用轻松超过 8GB。我的建议是至少预留 15GB 的可用空间因为后续编译过程中还会产生大量的中间文件。安装路径尽量选固态硬盘所在分区机械硬盘上编译大工程会让你等到怀疑人生。杀毒软件与安全防护的临时处理这一点我必须重点提醒。Keil 的注册工具Keygen以及部分芯片包的安装程序经常会被安全软件误判拦截。你在安装和激活阶段最好临时关闭实时防护装完再打开。否则你会遇到“激活码明明正确但就是提示无效”的诡异情况其实就是安全软件在后台把关键文件隔离了。旧版本残留清理如果你之前装过 Keil 的任何版本务必先通过控制面板卸载干净然后手动检查以下几个目录是否还有残留文件夹C:\Keil_v5默认安装目录C:\Users\你的用户名\AppData\Local\ArmC:\Users\你的用户名\AppData\Roaming\Keil注册表里搜索“Keil”和“MDK”关键字把相关项也清掉。这一步不做新版本装上去很可能出现组件冲突表现为编译器无法启动或者芯片包列表为空。1.2 安装包的获取与版本选择策略关于安装包的来源我不方便给出具体链接但可以告诉你选择逻辑。Keil 官方提供的是 MDK-ARM 和 C51 两个独立的安装程序你需要根据自己实际要开发的芯片类型来决定装哪个或者两个都装。只做 STM32 开发只需要下载 MDK-ARM 即可目前主流版本是 5.38 或 5.39。这两个版本对 STM32 全系列支持都很完善包括最新的 H7、U5 系列。不建议追求最新版因为最新版有时会引入一些兼容性问题比如对旧工程的编译器版本要求变严。同时需要 51 单片机开发那就需要额外下载 C51 的安装包。这里有个关键问题——Keil C51 和 MDK-ARM 能不能装在一起答案是能但有讲究。正确的做法是先装 C51再装 MDK-ARM并且两者安装到同一个盘符下的不同文件夹比如C:\Keil_v5\C51和C:\Keil_v5\ARM。这样安装完成后通过 Keil 的 License 管理界面可以同时激活两个产品工具链也能在同一个 IDE 里切换使用。注意如果你先装了 MDK 再装 C51C51 的安装程序可能会覆盖掉一些共享文件导致 MDK 的编译器异常。顺序很重要。版本兼容性对照MDK 版本支持的编译器对 Win11 兼容性推荐场景5.29ARMCC 5一般老工程维护5.36ARMCC 5 ARMCLANG 6良好兼顾新旧工程5.38ARMCLANG 6优秀新项目首选5.39ARMCLANG 6优秀尝鲜新特性我个人的建议是选 5.38稳定性和兼容性平衡得最好。5.39 虽然也稳定但部分第三方库还没跟上适配。2. Keil5 核心安装流程与激活细节2.1 主程序安装的每一步该注意什么安装程序启动后第一个界面是许可协议勾选同意继续。接下来是选择安装路径这里有个细节路径中不要包含中文和空格。虽然新版本对中文路径的兼容性有所改善但编译器底层调用的一些命令行工具仍然可能因为路径中的中文字符而出错。我习惯用C:\Keil_v5这个纯英文短路径。Core 和 Pack 的安装位置安装程序会让你分别指定 Core 组件和 Pack 组件的路径。默认情况下两者在同一个父目录下。如果你 C 盘空间紧张可以把 Pack 路径改到其他盘因为芯片包动辄几百 MB 一个全部装下来很占地方。但要注意Pack 路径一旦设定后续在 Keil 里安装新芯片包时都会默认装到这里中途更改比较麻烦。填写用户信息安装过程中会要求填写姓名、公司、邮箱等信息。这些随便填就行不影响功能。但邮箱格式要正确否则可能无法进入下一步。安装过程大约需要 5 到 10 分钟取决于你的硬盘速度。安装完成后安装程序会询问是否安装 Pack Installer 和是否查看 Release Note两个都勾上然后点 Finish。2.2 激活 License 的正确姿势与常见坑首次打开 Keil uVision5界面会提示你当前使用的是 Lite 版有 32KB 代码大小限制。对于 STM32 项目来说32KB 根本不够用一个稍微完整的工程编译出来轻松超过 100KB。所以激活是必须的。激活流程分几步打开 Keil点击菜单栏 File → License Management会弹出一个对话框里面有一串 CIDComputer ID。复制这串 CID然后打开注册工具把 CID 粘贴进去选择对应的产品类型MDK-ARM 或 C51点击 Generate 生成激活码。把激活码复制回 Keil 的 License 对话框点击 Add LIC。这里有几个高频翻车点第一注册工具需要以管理员身份运行。如果你直接双击打开生成的激活码可能无效。右键选择“以管理员身份运行”是标准操作。第二如果你同时装了 C51 和 MDK在 License 管理界面需要分别激活。先选 ARM 产品生成一个码添加成功后再选 C51 生成另一个码。两个产品的激活码不通用。第三激活成功后License 对话框里会显示过期日期。如果是长期激活码通常显示 2032 年或更远。如果显示的是几十天后过期说明你用的是试用版激活码需要重新生成。实操心得激活完成后建议把 License Management 界面截图保存。万一以后系统重装或者 Keil 出问题需要重新激活你至少知道之前用的是哪个 CID 和哪种激活方式。2.3 芯片包的安装与离线安装技巧Keil5 和 Keil4 最大的区别之一就是芯片包Device Family Pack的独立管理机制。Keil4 时代芯片支持是集成在 IDE 里的装完就有。Keil5 需要你单独下载安装对应的 DFP。在线安装打开 Keil点击工具栏上的 Pack Installer 图标一个绿色小方块会打开 Pack 管理界面。左侧是厂商列表找到 STMicroelectronics展开后可以看到 STM32 各个系列的包。点击你需要的系列右侧会显示可安装的版本点 Install 即可。在线安装的好处是自动处理依赖关系坏处是服务器在国外下载速度可能很慢有时候还会断连。离线安装更靠谱的方式是去 Keil 官网的 Pack 下载页面手动下载.pack文件。这个文件本质上是个压缩包但不要解压直接在 Keil 里通过 File → Import 或者双击.pack文件来安装。离线安装速度快而且可以拷贝到其他机器上复用。该装哪些包如果你做 STM32 开发至少需要装Keil.STM32F1xx_DFPF1 系列、Keil.STM32F4xx_DFPF4 系列。如果用到 F7、H7、G0、G4 等系列对应包也要装。每个包大小在 100MB 到 500MB 不等建议按需安装不要一股脑全装否则 Pack Installer 加载会变慢。安装完芯片包后新建工程时才能在 Device 列表里找到对应的芯片型号。如果找不到八成是包没装成功或者装到了错误的路径下。3. 工程创建与编译工具链配置3.1 从零新建一个 STM32 工程的完整步骤打开 KeilProject → New uVision Project选择一个空文件夹作为工程目录。工程名建议用英文不要用中文或特殊字符。接下来弹出 Device 选择窗口。在搜索框输入你的芯片型号比如 STM32F103C8下方会列出匹配的芯片。选中后点击 OK。此时 Keil 会提示你是否需要复制启动文件Startup Code到工程目录选择 Yes。这个启动文件包含了芯片上电后的初始化代码和中断向量表是工程运行的基础。管理运行时环境RTEKeil5 会弹出 Runtime Environment 配置界面。这里你可以勾选需要的外设驱动库比如 CMSIS Core、Device Startup、GPIO、USART 等。对于新手我建议先只勾选 CMSIS 下的 CORE 和 Device Startup其他外设驱动后续按需添加。勾选太多会导致工程臃肿编译时间变长。工程创建完成后左侧 Project 窗口会显示 Target 1 和 Source Group 1。你需要手动添加自己的源文件。右键 Source Group 1 → Add New Item to Group可以新建.c和.h文件。或者右键 → Add Existing Files to Group添加已有的源文件。配置目标选项点击工具栏的魔术棒图标Options for Target进入配置界面。几个关键设置Target 标签页确认晶振频率Xtal设置正确比如 8MHz 或 12MHz。这个值影响调试时的时序计算。Output 标签页勾选 Create HEX File这样编译后会生成可烧录的 hex 文件。如果你用 ST-Link 直接烧录不生成 hex 也行但建议勾上作为备份。C/C 标签页在 Define 框里填入芯片对应的宏定义比如STM32F103xB。这个宏决定了头文件里寄存器定义的映射关系填错了编译会报大量未定义错误。在 Include Paths 里添加头文件搜索路径通常包括 CMSIS 核心头文件目录、外设库头文件目录和你的用户代码目录。Debug 标签页选择调试器类型。如果你用 ST-Link在下拉框选 ST-Link Debugger然后点 Settings确认能识别到芯片 ID。如果识别不到检查接线和驱动。3.2 编译器版本选择与 C51/ARM 共存配置Keil5 的 ARM 工具链有两个编译器ARMCC版本 5和 ARMCLANG版本 6。ARMCC 是传统编译器兼容性好很多老工程和第三方库都是基于它写的。ARMCLANG 是基于 LLVM 的新一代编译器编译速度更快代码优化更好但对某些旧代码的语法要求更严格。在 Options for Target → Target 标签页的 ARM Compiler 下拉框里可以切换。如果你的工程是从 Keil4 迁移过来的建议先用 ARMCC 5 编译确保能通过后再尝试切换到 ARMCLANG 6。切换后如果报大量语法错误说明代码里有 ARMCLANG 不支持的写法需要逐个修改。C51 和 ARM 共存的配置要点当你同时装了 C51 和 MDK 后打开 Keil 时它会自动识别当前工程是 51 工程还是 ARM 工程。但有时候会出现工程类型识别错误的情况表现为打开 ARM 工程却调用了 C51 的编译器报一堆莫名其妙的错误。解决办法是在 Project → Manage → Project Items 里确认 Toolchain 选择正确。或者在 Options for Target 里检查 Device 标签页的芯片是否属于当前工具链支持的系列。如果 51 和 ARM 的工程混在同一个 Keil 实例里打开建议关掉重新打开让 IDE 重新加载工具链配置。注意C51 的 License 和 ARM 的 License 是独立的。如果你只激活了 ARM 没激活 C51打开 51 工程时会提示代码大小受限。两个都要用的话记得分别激活。3.3 编译输出与 MAP 文件解读入门编译成功后Output 窗口会显示 Program Size 信息包括 Code、RO-data、RW-data、ZI-data 四个数值。很多新手看到这四个值一脸懵这里简单解释一下Code程序代码占用的 Flash 空间也就是你写的所有函数编译后的机器码大小。RO-data只读数据包括常量、字符串字面量等也存放在 Flash 里。RW-data已初始化的全局变量和静态变量运行时占用 RAM但初始值存储在 Flash 中上电时拷贝到 RAM。ZI-data未初始化或初始化为零的全局变量只占用 RAM 空间不占 Flash。Flash 总占用 Code RO-data RW-data。RAM 总占用 RW-data ZI-data。你可以用这个公式快速判断芯片的 Flash 和 RAM 是否够用。MAP 文件的打开方式在 Options for Target → Linker 标签页勾选 Generate Map File。重新编译后工程目录下会生成一个.map文件。这个文件详细记录了每个函数、每个变量被链接到了哪个地址占用了多少空间。MAP 文件里最值得关注的是 Image Symbol Table 部分它按地址顺序列出了所有符号。如果你发现某个函数占用了异常大的空间可以针对性优化。另外如果编译报错说 RAM 溢出在 MAP 文件里搜索“Total RW Size”和“Total ROM Size”能快速定位是哪个部分超了。对于 C51 工程MAP 文件的解读逻辑类似但 C51 的内存模型更复杂有 data、idata、xdata、code 等多个存储区。MAP 文件里会分别列出各存储区的使用情况。如果你用 C51 开发建议花时间研究一下 MAP 文件对优化代码空间很有帮助。4. 烧录与调试实战4.1 ST-Link 驱动安装与连接排查ST-Link 是 STM32 开发中最常用的调试烧录器。使用前需要安装驱动驱动通常在 ST-Link Utility 或 STM32CubeProgrammer 的安装包里自带。装完驱动后把 ST-Link 插到电脑 USB 口在设备管理器里应该能看到“STMicroelectronics STLink dongle”设备没有黄色感叹号。接线要点ST-Link 和 STM32 之间至少需要连接四根线——SWCLK、SWDIO、GND、3.3V。其中 3.3V 是参考电压不是给芯片供电的除非你选择由 ST-Link 供电。SWCLK 和 SWDIO 分别接芯片对应的调试引脚通常是 PA14 和 PA13。有些开发板把这两个引脚引出来了标注为 SWD 接口直接对应连接即可。Keil 中的调试器配置Options for Target → Debug 标签页选择 ST-Link Debugger点击 Settings。在 Debug 子标签页里Port 选择 SWMax Clock 可以先设为 1MHz稳定后再调高。如果右侧的 SW Device 框里能显示芯片 ID说明连接正常。如果显示“No target connected”检查接线和芯片供电。实操心得ST-Link 的固件版本有时候会影响兼容性。如果你用的是较新的 STM32 芯片比如 G0、U5 系列但 ST-Link 固件太老可能识别不了。用 STM32CubeProgrammer 里的固件升级功能把 ST-Link 固件升到最新能解决大部分识别问题。4.2 烧录失败的常见原因与排查路径烧录失败是新手遇到最多的问题报错信息五花八门但原因往往就那么几个。我整理了一个排查顺序按这个流程走基本能覆盖 90% 的情况。第一步检查硬件连接。用万用表量一下 ST-Link 和芯片之间的 SWCLK、SWDIO 是否导通GND 是否共地。有时候杜邦线内部断了外表看不出来。第二步确认芯片供电。芯片的 VDD 引脚必须有 3.3V 供电VDDA 也要接。如果芯片没供电ST-Link 识别不到是正常的。第三步检查复位电路。有些开发板的复位引脚接了电容和电阻如果参数不对可能导致芯片一直处于复位状态。可以尝试在 Keil 的 Debug 设置里把 Reset 方式改为“SYSRESETREQ”或“VECTRESET”。第四步降低 SWD 时钟频率。在 Debug → Settings 里把 Max Clock 从 4MHz 降到 1MHz 甚至 500kHz。有些芯片在高速时钟下不稳定降频能解决。第五步检查芯片是否被读保护。如果芯片之前被设置了读保护Read Out ProtectionST-Link 无法连接。需要用 STM32CubeProgrammer 解除保护但注意解除保护会擦除芯片内所有数据。第六步排查 BOOT 引脚状态。STM32 的 BOOT0 和 BOOT1 引脚决定了启动模式。如果 BOOT0 接高电平芯片会从系统存储器启动而不是从 Flash 启动。烧录时通常需要 BOOT0 接地。报错信息可能原因解决方法No target connected接线错误/芯片没供电检查 SWD 四线连接和电源Cannot access target芯片被读保护/复位异常解除读保护/检查复位电路Flash download failedFlash 算法未配置在 Flash Download 里添加对应算法RDDI-DAP Error时钟太快/线太长降低 SWD 时钟/缩短接线J-Link clone warning调试器固件问题更换调试器或升级固件4.3 在线仿真与断点调试技巧烧录成功只是第一步真正调试代码还得靠在线仿真。Keil 的调试功能很强大但很多人只会按 F5 全速运行和设个断点其实还有很多实用技巧。变量实时监控进入调试模式后把鼠标悬停在变量上可以查看当前值。但更高效的方式是打开 Watch 窗口把关键变量拖进去全速运行时这些变量的值会实时刷新。对于数组可以在 Watch 窗口里输入arrayName[0..9]来查看前 10 个元素。逻辑分析仪功能Keil 内置了一个软件逻辑分析仪可以观察引脚电平变化和变量波形。在调试模式下打开 View → Analysis Windows → Logic Analyzer添加你要观察的引脚或变量。这个功能对于调试时序问题特别有用比如你写了一个软件 SPI想确认时钟和数据线的时序关系是否正确。内存窗口查看寄存器View → Memory Windows → Memory 1输入外设寄存器的地址比如 GPIOA 的 ODR 寄存器地址可以直接看到寄存器的值。这对于排查“为什么引脚没输出”这类问题非常直观。断点类型Keil 支持普通断点、条件断点和数据断点。条件断点可以设置“当变量等于某个值时停下”数据断点可以设置“当某个内存地址被写入时停下”。数据断点对于排查“谁改了我的变量”这类问题特别有效。注意STM32 的硬件断点数量有限通常只有 6 个左右。如果你设了太多断点Keil 会提示无法设置。这时候需要删掉一些不用的断点或者改用条件断点来减少数量。5. 常见问题速查与避坑经验5.1 安装与激活类问题问题一安装过程中卡在某个进度不动。这通常是因为安装程序在联网下载组件。解决办法是断开网络再安装或者耐心等待。如果卡超过 10 分钟强制结束进程清理临时文件后重试。问题二激活码提示无效。检查注册工具是否以管理员身份运行检查 CID 是否复制完整不要有空格检查选择的产品类型是否正确。如果都对了还是无效尝试把系统时间调到 2020 年再激活激活成功后再调回来。这个方法对某些版本的注册工具有效。问题三芯片包安装后 Device 列表里找不到芯片。打开 Pack Installer确认包的状态是“Installed”而不是“Downloading”或“Error”。如果状态异常卸载后重新安装。另外检查 Pack 路径是否包含中文如果有改成纯英文路径。问题四C51 和 ARM 装在一起后打开工程提示工具链不匹配。在 Project → Manage → Project Items 里把 Toolchain 改成正确的。如果改不了说明工程文件本身指定了工具链需要手动编辑.uvproj文件里的相关字段。5.2 编译与链接类问题问题一编译报大量“undefined symbol”错误。最常见的原因是头文件路径没配全或者宏定义没填对。检查 Options for Target → C/C 里的 Include Paths 和 Define 设置。另外确认源文件是否添加到了工程里有时候文件在文件夹里但没加入工程编译时自然找不到。问题二RAM 空间不足。STM32F103C8 只有 20KB RAM如果定义了大的全局数组很容易超。解决办法是把大数组改成局部变量放在栈上或者用__attribute__((section(.ccmram)))放到 CCM RAM如果芯片支持。另外检查 MAP 文件看看是哪个变量占了大头。问题三Flash 空间不足。优化编译选项把 Optimization 级别调到 -Os优化大小。移除不必要的库函数比如printf如果只是调试用可以在发布版本里去掉。使用const把常量放到 Flash 里减少 RAM 占用。问题四编译速度慢。Keil 默认是单线程编译大工程编译一次要几分钟。可以在 Options for Target → Output 里勾选 Browse Information 来加快代码跳转但会增大编译产物。另外把不用的芯片包卸载掉Pack Installer 加载的包越多IDE 启动和编译越慢。5.3 烧录与调试类问题问题一ST-Link 能识别但烧录报错。检查 Flash Download 设置里是否添加了对应芯片的 Flash 算法。点击 Add 按钮选择芯片对应的 Flash 算法文件。如果列表里没有你的芯片型号说明芯片包没装全。问题二烧录成功但程序不运行。检查 BOOT 引脚状态BOOT0 必须接地才能从 Flash 启动。检查复位电路有些开发板的复位按键卡住了。检查时钟配置如果外部晶振没起振程序会卡在时钟初始化里。问题三调试时断点不生效。检查优化级别如果 Optimization 设为 -O2 或 -O3编译器可能会优化掉一些代码导致断点位置偏移。调试阶段建议把优化级别设为 -O0。问题四串口输出乱码。检查波特率设置是否和代码里一致。检查系统时钟配置如果时钟频率不对波特率计算就会出错。用示波器量一下串口 TX 引脚的波形确认波特率是否准确。5.4 工程管理与效率提升问题一左侧目录不显示文件。Keil5 默认的 Project 窗口只显示 Target 和 Group不显示具体的源文件。点击 Project 窗口右上角的“”号展开或者右键 Target → Manage Project Items在里面可以看到完整的文件列表。问题二工程模板复用。每次新建工程都要重新配置一遍 Options很浪费时间。我的做法是建一个“标准工程模板”把所有常用配置都设好然后复制这个模板文件夹来创建新工程。模板里包含启动文件、CMSIS 核心文件、常用的外设驱动和一份空的 main.c。问题三代码自动补全和跳转。Keil5 的代码编辑功能比较基础但可以通过安装插件增强。另外在 Options for Target → Output 里勾选 Browse Information可以支持函数跳转和符号查找。虽然会增大编译产物但开发效率提升明显。问题四版本管理。Keil 工程文件.uvproj、.uvopt是 XML 格式的适合用 Git 管理。但编译产生的中间文件.o、.axf、.hex不要提交到仓库。在工程目录下建一个.gitignore文件把Objects/、Listings/、DebugConfig/等目录排除掉。6. 从安装到烧录的完整流程复盘6.1 一套可复用的标准化操作清单经过上面这么多步骤我把整个流程浓缩成一份操作清单你可以照着一步步来也可以打印出来贴在工位上。安装阶段确认系统 64 位预留 15GB 空间关闭安全软件实时防护清理旧版本 Keil 残留文件和注册表项先装 C51如需再装 MDK-ARM安装路径纯英文以管理员身份运行注册工具分别激活 ARM 和 C51安装所需芯片包优先用离线 .pack 文件安装工程配置阶段新建工程选择正确芯片型号复制启动文件在 RTE 里勾选 CMSIS Core 和 Device Startup添加源文件配置 Include Paths 和宏定义设置编译器版本ARMCC 5 或 ARMCLANG 6勾选 Create HEX File 和 Generate Map File烧录调试阶段安装 ST-Link 驱动连接 SWD 四线在 Debug 设置里选择 ST-Link确认识别到芯片在 Flash Download 里添加对应 Flash 算法编译无误后点击 Download 烧录进入调试模式用 Watch 窗口和逻辑分析仪排查问题6.2 我踩过的三个典型坑与解决方案第一个坑芯片包版本和 Keil 版本不匹配。有一次我装了一个最新版的 STM32F4 芯片包结果 Keil 5.36 打开工程时提示“Pack requires a newer version of uVision”。解决办法是降级芯片包版本或者升级 Keil。后来我养成了习惯装芯片包之前先看它的 Release Note确认兼容的 Keil 版本范围。第二个坑ST-Link 克隆版警告。我用过一个便宜的 ST-Link 克隆版Keil 弹出警告说“所连接的探头似乎是 J-Link 克隆产品”。虽然点确定后还能继续用但偶尔会断连。后来换了一个正版 ST-Link V2再也没出现过这个问题。如果你预算有限至少买个口碑好的克隆版别买那种十几块钱的。第三个坑工程路径太深导致编译失败。Windows 的路径长度限制是 260 个字符如果你的工程放在很深的目录里加上 Keil 生成的中间文件路径很容易超限。表现是编译时报“cannot open file”错误但文件明明存在。解决办法是把工程移到浅目录比如D:\Projects\STM32\下面。6.3 后续扩展方向装好 Keil 只是 STM32 开发的第一步。接下来你可能会接触到这些方向标准工程模板的建立把常用的外设驱动、中断处理、延时函数封装成模板以后新建工程直接复制省去重复配置的时间。VSCode 配合开发很多人觉得 Keil 的编辑器太简陋转向 VSCode 写代码、Keil 编译调试的组合。VSCode 里装 Cortex-Debug 插件配置好 launch.json 和 tasks.json可以实现代码补全、语法高亮和一键编译烧录。STM32CubeMX 生成工程ST 官方的图形化配置工具可以自动生成初始化代码和 Keil 工程。对于复杂的外设配置比如 USB、以太网、定时器级联用 CubeMX 比手动写寄存器效率高得多。RTOS 和中间件当项目复杂度上升到需要多任务管理时FreeRTOS 是首选。Keil 的 RTE 里可以直接勾选 FreeRTOS 组件自动添加源码和配置头文件。烧录器升级ST-Link 适合入门但如果你需要更快的烧录速度或者更多的调试功能可以考虑 J-Link 或 DAPLink。J-Link 的 RTT 功能可以在不占用串口的情况下输出调试信息非常实用。我个人在实际操作中的体会是Keil5 的安装和配置本身并不复杂真正花时间的是排查各种环境问题。把上面这些检查点和排查路径记熟以后换电脑或者帮别人装环境基本能在半小时内搞定。另外养成备份工程模板和芯片包的习惯下次重装系统时能省下大量下载时间。
返回列表