资源包:keil安装包
链接: https://pan.baidu.com/s/1ojfIqWdvMPN7wpjjg1q8BA?pwd=fqg7

提取码: fqg7

一、安装mdk

1.下载keil5的压缩包,解压后,点击运行mdk514

2. 在弹出来的以下界面中,点击“Next”

3.下一个界面中,勾选“I agree”,然后再次点击“Next”

4.到达下面这个界面之后,记住原始默认安装路径

5.点击“Browse”自定义修改安装路径,上下路径必须保持一致

6.自定义填写信息,点击“Next”

7.进入安装界面,等待

8.选项已经默认勾好,点击“Next”

9.弹出“Pack installer”页面,关闭这两个窗口

二、激活mkd

1.右击keil5图标,点击“以管理员身份运行”,这一步直接决定了你是不是能更大程度开发使用里边的功能!

2.进入之后, 点击“file”>里边的选项“License Management”

3.复制里面的“CID”

4.去最开始的安装文件, 点击“keygen.exe文件”(注意关闭防火墙和实时保护)

5.粘贴CID号>Target设置为“ARM”>点击Generate就会生成激活码,复制下来

6. 复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活mdk,显示mdk的使用期限

三、安装STM32芯片包

1.在最开始的安装包里,咱们点击Keil.STM32F1xx_DFP.2.2.0.pack>>“Next”进行安装

2.等待,跑完之后点击“Finish”

四、安装C51单片机

1. 在安装包中点击C51文件夹,打开c51v961.exe文件

2. 弹出的框里,点击“Next”

3.勾选上“I agree”>>点击“Next”

4. 继续之前的路径>>然后点击"Next"

5. 继续重复之前的操作,然后默默等进度条满格

6. 按照图片的要求勾选好>>点击“Next”

五、激活C51单片机

1. 管理员身份打开keil5

2.进入之后,点击“file”>里边的选项“License Management”

3.复制里边的“CID”​编辑

4. 进入安装包,打开注册机

5.将复制的CID号粘贴进去,然后选择C51>>点击“Generate”生成激活码>>再次复制激活码

6. 复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活C51,显示mdk的使用期限

六、核心快捷键

1. 文件与编辑类

快捷键

功能描述

使用场景

Ctrl + S

保存当前文件

随时保存,防止意外丢失。

Ctrl + Shift + S

保存所有打开的文件

编译前的好习惯。

Ctrl + Z

撤销

通用操作。

Ctrl + Y

重做/删除整行

非常实用,比按 Backspace 快得多。

Ctrl + C/ V/ X

复制/粘贴/剪切

通用操作。

Ctrl + F

查找

在当前文件中搜索。

Ctrl + H

替换

批量修改变量或函数名。

Ctrl + G

跳转到指定行

快速定位编译错误指向的行。

Ctrl + /

注释/取消注释行

快速注释掉单行或选中的多行。

Tab/ Shift + Tab

缩进/反向缩进

调整代码块格式。

Ctrl + K/ Ctrl + Shift + K

折叠/展开所有代码块

查看代码结构时非常有用。

Ctrl + Space

代码提示/自动补全

强烈推荐,必须开启此功能(见下文技巧)。

2. 编译与构建类

快捷键

功能描述

使用场景

F7

编译当前文件

只检查语法,不链接,速度快。

F8

构建/重新构建目标

最常用,增量编译,只编译修改过的文件。

Ctrl + F8

全部重新构建​

清除中间文件,从头开始编译,确保完全干净。

3. 导航与窗口类

快捷键

功能描述

使用场景

F12

Go to Definition​

神器,跳转到变量或函数的定义处。

Ctrl + Click

同 F12

鼠标流操作,同样方便。

Ctrl + -

返回上一个光标位置

跳转定义后,快速返回原位置。

Ctrl + Shift + -

前进到下一个光标位置

与上一个配合使用。

Ctrl + F2

设置/取消书签

在重要代码行做标记。

F2

跳到下一个书签

快速在标记间跳转。

Ctrl + Tab

在打开的文件间切换

多文件编辑时必备。

4. 调试类(进入 Debug 模式后)

快捷键

功能描述

使用场景

Ctrl + F5

开始/停止调试会话

最核心的调试入口和出口。

F5

运行

全速执行,直到遇到断点。

F11

单步步入​

进入函数内部。

F10

单步跳过​

执行下一行,不进入函数。

Ctrl + F11

单步跳出

从当前函数中跳出,返回到调用处。

F9

设置/取消断点

调试的基本操作。

Ctrl + F9

启用/禁用断点

临时关闭断点而不删除。

Ctrl + Shift + F9

禁用所有断点

批量管理断点。

七、开发技巧

1、开启代码自动补全和语法动态检查

路径: Edit -> Configuration... -> Text Completion和 Text Completion标签页。

技巧:

  • 勾选 “Symbols after 3 Characters”​ 和 “Keywords”。
  • 强烈建议开启 “Dynamic Syntax Checking”,它能在你编码时实时提示语法错误(红色下划线)。
2、使用代码模板(Templates)

路径: Edit -> Configuration... -> Text Completion -> Templates。

技巧: 可以自定义代码片段。例如,输入 for后按 Tab,自动生成一个 for 循环结构。可以自定义常用的代码块,如头文件保护、外设初始化结构体等。

3、善用“Go to Definition”和“Find in Files”

F12是理解代码结构的最佳工具。当看到一个不熟悉的函数或变量时,直接跳转过去查看其定义和实现。

全局搜索使用 Ctrl + Shift + F,比单个文件查找更强大,可以搜索整个项目或指定路径。

4、合理配置项目目标(Targets)和文件组(Groups)

对于有多个硬件版本(如 V1.0, V2.0)或不同配置(如 Debug, Release)的项目,使用 “Project -> Manage -> Project Items”​ 创建多个 Target。

将源文件按模块分到不同的 Groups(如 Drivers, Middlewares, Application)中,使项目结构清晰,便于管理。

5、优化编译选项

Debug 配置: 选择 Debug目标,在 Options for Target -> C/C++中,优化级别选择 -O0(不优化),并勾选 -g以生成完整的调试信息。

Release 配置: 选择 Release目标,优化级别选择 -O2或 -Os(优化代码大小),并去掉调试信息以减小体积。

6、使用 .S扩展名表示汇编文件

如果你有汇编启动文件,将其命名为 startup_xxx.S(大写 S),这样 Keil 会调用支持 C 预处理的汇编器,可以在汇编文件中使用 #include等宏定义,非常方便。

八、调试技巧

1、逻辑分析仪(Logic Analyzer)

路径: 进入调试模式,View -> Analysis Windows -> Logic Analyzer。

技巧: 可以图形化地显示变量(特别是全局变量)、GPIO 引脚的电平变化、程序执行时间等。添加变量时,需要将其地址强制转换为相应类型,如 *(volatile uint32_t*)&myVariable。

2、串行窗口(Serial Window)

路径: 进入调试模式,View -> Serial Windows -> UART #1/2/...。

技巧: 配合重定向 printf函数(参考 __io_putchar或使用 MicroLIB),可以直接在调试时像真实串口一样打印调试信息,无需连接物理串口线。

3、实时表达式窗口(Watch Windows)和 实时变量窗口(Live Watch)

Watch: 手动添加要监视的变量。

Live Watch: 更强大,会自动显示当前作用域内的所有变量,并支持表达式计算。

4、内存查看窗口(Memory Window)

路径: View -> Memory Windows -> Memory 1/2/3/4。

技巧: 输入地址(如 0x20000000表示 RAM 起始地址)可以直接查看内存内容,对于检查数组、缓冲区、寄存器映射非常有用。

5、性能分析器(Performance Analyzer)

路径: View -> Analysis Windows -> Performance Analyzer。

技巧: 可以统计各个函数的执行次数和所占时间百分比,用于定位性能瓶颈。

6、断点的高级用法

条件断点: 右键点击断点(红色圆点),选择 “Breakpoint Conditions...”,可以设置断点触发的条件(如 i == 10)或跳过次数。避免在循环中频繁暂停。

命令断点: 在条件断点设置中,还可以输入命令,如 printf (“Value of i is %d\n”, i),断点触发时会执行该命令并打印信息,实现无侵入式调试。

九、总结

熟练运用 Keil 的关键在于:

编码阶段:多用 F12导航,多用 Ctrl+Space补全,保持代码整洁。

编译阶段:F8是日常,Ctrl+F8是解决疑难杂症的利器。

调试阶段:善用 F10/F11单步,结合 逻辑分析仪​ 和 串行窗口​ 进行宏观和微观分析,利用 条件断点​ 提高效率。

更多推荐