【嵌入式工具】Keil下载,安装,配置教程大全

2023-05-16

文章目录

  • 前言
  • 一、Keil下载及安装
  • 二、Keil兼容C51和ARM
  • 三、STM32支持包下载安装
    • 1. 官网下载
    • 2. 安装
  • 四、常用配置
    • 1. 代码补全和代码联想
    • 2. 主题设置
    • 3. 快捷键设置
    • 4. 快速模板
    • 5. 快速格式化代码
    • 6. 转换文件编码格式
      • /\*2022.3.22\*/更新
    • 7. Keil中的历史打开文档里面的坑//2022.5.19

前言

  作为最常用的单片机程序编辑工具,全球有超过10万的工程师在使用Keil,但初学者很有可能对Keil的各种信息和操作一无所知,我便是其中一员,由于最近看了很多Keil相关的教程,这里想结合自己的实践经验来写一篇汇总式的教程,我觉得几乎包含了在使用Keil的过程中可能出现的各种需求。

一、Keil下载及安装

  使用一个软件,首先是获取这个软件的安装包,而根据我们的习惯,一般会选择在官网下载,一个是保证版本要最新(没有这个需求的当我没说),一个是避免各种奇奇怪怪的问题。
  于是,我们来到官网:https://www.keil.com/,点击Download
在这里插入图片描述
  选择Product Download
在这里插入图片描述
  下载MDK-ARM和C51两个安装文件,如果只需要一个,按需下载
在这里插入图片描述
  具体操作就不再演示了,下载时应该还需要填写一些信息,按需填写。然后就可以得到两个文件:
在这里插入图片描述
  注意:版本可能不一样!但问题不大。

二、Keil兼容C51和ARM

  由于安装破解一种版本的Keil比较简单,网上教程一大堆,此处不再赘述,而是记录一下自己在实现Keil兼容C51和ARM时的操作。我觉得大部分人应该都会有这个需求。
  先说说我找的一些教程吧。在研究这个问题的时候,我也是找了很多教程的,但我发现教程之间差得特别大,有些要求两个软件分开安装,然后复制来复制去的,还需要改变ini文件,确实非常复杂,但也有很简单的操作方式,那就是直接两个安装包装一起就完事,非常简单。我试的就是后一种,而且亲测有效! 下面简单叙述一下过程。

  • 1. 安装MDK,选择一个你喜欢的路径,其他的都是一路next。
    需要注意这里有一个小讲究,那就是路径问题,默认路径是C:\Keil_v5,虽然我们可以选择其他路径,但是仔细的话就会发现,在下面有一行蓝色小字,提示你这个路径有严格的管理员权限限制,使得运行需要管理员权限,那不用管理员权限运行就不行了吗?编辑代码还是可以的,但是会出现一些奇怪的问题,后面会有提及,先埋个伏笔。在这里插入图片描述所以这里,我仍然改动了路径。

  • 2. 安装c51v960a
    这个具体操作也是一路next,但是一定要注意,安装路径一定要和MDK-ARM安装路径相同!!!。另外,我看到的教程好像都是先安装C51,再安装MDK-ARM,但是我的顺序不一样好像也没有问题~~

  • 3. 效果展示
    安装完两个安装包之后会发现,桌面上仍然只有一个快捷方式,因为其实创建了两个,但先创建的被默认替换掉了,可见其执行程序还是一样的。双击快捷方式,打开Keil,新建工程。在这里插入图片描述
    在这里插入图片描述
    如果器件处可以选择,表示兼容ARM和C51的Keil安装成功!

  • 4. 激活
    安装完之后,为了正常使用,还需要进行激活,方法和一般的激活方式差不多,但是记得注册机要用2032年到期的,具体可以参考这个链接。

三、STM32支持包下载安装

1. 官网下载

  Keil本质上只是一个框架,如果不填充内容,编译单片机的程序就是一句空话,而支持包就是这个“内容”。
  仍然坚持我们软件优先从官网下载的原则,我们去官网找一下支持包。仍然打开官网:https://www.keil.com,在搜索栏中搜索pack:
在这里插入图片描述
  回车,显示搜索结果:
在这里插入图片描述
  很幸运,第一个就是,点击进入。
在这里插入图片描述
  为方便查找,可以点击Device List,当前看到的是具体板子的型号,点击之后相当于对板子进行分类。
在这里插入图片描述
  然后下载所需的型号即可。注意:如果需要F1的支持包,可以点击F1系列下任何型号,然后点击右边的下载即可,会自动下载该系列的支持包。对应型号板子的网页内容会提供该型号芯片的信息及相关的例程,辅助学习。

//2022.11.1更新:
  前两天意外发现Keil官网下ST的支持包的位置换到Keil目录下了。。。所以如果找不到ST开头的项,建议直接使用浏览器的查找功能Ctrl + F,搜索STM即可。

  这一步之所以讲得这么细致,主要是想 “授之以渔” ,如果以后需要其他型号的单片机,也可以到这个网站按照这种方式来寻找。

2. 安装

  说到安装,其实有两种方式,一种是在线安装,即打开一个基于某个支持包的程序,软件会自动提示你这个程序基于xxx支持包,是否下载安装,然后直接下载即可。(注意联网
  而最为常见是还是离线安装方式。可以直接双击下载的文件安装,也可以在软件界面内点击Package Installer来进行安装,效果一样。
在这里插入图片描述

在这里插入图片描述
  但是在这里往往会遇到一个问题,那就是包安装失败的问题,目前来说,我遇到这个问题100%是管理员权限的问题,正是之前提到的安装路径更换需要管理员权限运行。最简单的方法就是关闭程序,右键,以管理员身份运行,但是每次都点也很麻烦,所以我建议出现问题的可以直接设置快捷方式的属性:
在这里插入图片描述
在这里插入图片描述

四、常用配置

  完成了以上内容,Keil的安装基本完成,接下来就是对Keil的配置操作了,这部分内容可以提供你编程的速度和效率。以下操作内容基本是操作该软件的设置。提前告知位置:Edit -> Configuration(在最后)

1. 代码补全和代码联想

  众所周知,STM32的库函数都特别长,那我怎么保证我没有输入错误呢?主要依靠的就是代码联想和代码补全功能。Keil虽然显得很有年代,但其实Keil是具有代码联想和代码补全功能的!
  而且这个设置默认是打开的,查看方法很简单,打开设置,选择Text Completion
在这里插入图片描述

2. 主题设置

  用Keil打开一个工程,会看到如下界面:
在这里插入图片描述
  用四个字来形容,那就是又小又丑,不太适合编程,于是,优化界面就显得很重要了
  仍然是打开设置,选择Color&Fonts
在这里插入图片描述
  有意思的是,虽然每一项都设置了字体的选项,但一旦设置字体,所有的都会改变(这显然得要的嘛)字体大小同理。


  另外,需要注意的是,所有主题相关的更改,都会体现在文件global.prop中,而这个文件就在Keil安装根目录下,右键快捷方式选择打开文件所在位置即可找到。因此,如果想要快速更换主题,可以在网上找一些大佬们设置好的主题,直接替换即可。但建议最好替换完全一点。

3. 快捷键设置

  仍然打开设置,选择Shortcut Keys
在这里插入图片描述
  然后选择对应的功能进行设置即可。建议将Comment SelectionUncomment Selection 设置快捷键,分别是注释选中行和取消注释选中行,但这个功能有点缺陷,就是这个“选中”是真的选中,而不能仅仅是鼠标光标停在某一行,有点奇怪。。。

4. 快速模板

  快速模板提供了一个随时添加一个小模块的功能,可以在一定程度上加快程序的编写。
在这里插入图片描述
  进入后,右键:

在这里插入图片描述
  选择Configure Templates
在这里插入图片描述

  这个功能可以用来编辑函数前的注释,非常好用。

在这里插入图片描述

5. 快速格式化代码

  参考链接:https://blog.csdn.net/u012121390/article/details/113861794?utm_source=app&app_version=4.14.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

6. 转换文件编码格式

  在使用Keil时,发现一个问题,那就是不同编码格式下的字体不一样(虽然设置的字体是一样的),主要表现为UTF-8格式下可以支持常用的编程字体,比如Fira Code,但是GB2312格式下却不支持,然而现在很多例程都是GB2312的格式,作为一个美化狂,不能忍受这个问题,于是就去找了一些相关的美化操作,没想到,还真找到了,hh,可以参考这个链接。但是很无奈的是,和博主聊过之后才发现,博主电脑上是支持的,但我这就是不行,各种方法都试过了,就很无奈。最后还是无意间找到一个替代品,参考这个链接。虽然不能集成到Keil中,但总的来说使用很方便,就当记录一下了。

/*2022.3.22*/更新

  之前经过自己的试验,发现将代码文件转化编码格式会出现很多意想不到的问题,比如自带字库的LCD12864模块,需要注意:这个自带的字库的编码方式是GB2312,即Keil默认的中文编码格式,也就是说如果你的.c文件编码格式为UTF-8,那么你写的中文就不能被LCD模块识别,从而导致乱码,这个问题估计没几个人会遇到,但一旦遇到,估计就是卡好几天,还得质疑LCD是不是烧了。。。
  在遇到这个问题之后,我在反思为什么我想要将代码文件的编码格式转换成UTF-8,原因就是我想要美化字体,但是中文编码格式下不支持很多编程字体,那么有没有什么办法可以不改变编码格式而且也能有好看的字体呢?还真有。参考MATLAB,我们可以考虑使用混合字体,这里推荐一个混合字体,也是最为常见的混合字体:Consolas+微软雅黑,就不放下载链接了,大家可以上网搜一下,资源很多。

7. Keil中的历史打开文档里面的坑//2022.5.19

  最近使用Keil遇到一个很离谱的事情,那就是发现程序无理报错 undefined identifier,而且程序确定是对的,这就很离谱了,经过一通查找,最后无意间发现,其报错指向的头文件似乎不是我打开的那个,但是名字却是完全一样的,这就很奇怪了,我一开始还以为是写程序的人疏忽了,但是工程文件夹下却只有一个文件。然后我把所有已打开的文档全部关闭,然后再重新打开工程,意外发现,那个头文件,竟然还是我修改之前的文件。。。
  到这里,基本明白了是怎么回事,Keil留有一个功能很有意思,那就是会记录你这个工程打开了哪几个文件,然后在你下次打开的时候直接读取“记忆”,这样就方便开发人员,但是实际上它打开的是缓存文件,如果你在关闭工程之后又移动了它的路径,那就完蛋了,它打开了缓冲文件你改动是没办法指向原文件的,也就意味着你改动的其实并不是真正的文件。。。。。
  所以,为了避免这种尴尬的事情再次发生,个人觉得应该得改变一下使用习惯。一个就是关闭所有文档之后再关闭工程,一个就是要学会识别这种缓冲文件,其特点就是文件名都大写了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【嵌入式工具】Keil下载,安装,配置教程大全 的相关文章

  • 3.1.2 操作系统内存管理管些什么?

    0 思维导图 1 内存空间的分配与回收 2 内存空间的扩展 xff08 实现虚拟性 xff09 3 地址转换 4 内存保护 1 操作系统负责内存空间的分配和回收 xff1b 2 操作系统需要提供某种技术从逻辑上对内存空间进行扩充 xff1b
  • C++11特性

    最近打算照着源文档学习C 43 43 特性 xff0c 先从C 43 43 11的特性开始 学习 xff1a C 43 43 11 cppreference com C 43 43 11 C 43 43 11是继C 43 43 98之后的最
  • C++11特性之auto

    占位符类型说明 对变量而言 xff0c 指定要声明的变量的类型将从其初始值中自动推导出来 对于函数而言 xff0c 指定的返回类型将从其返回语句中推导出来 xff08 从C 43 43 14开始 xff09 对于非模版类型的参数而言 xff
  • C++11特性之decltype

    检查一个实体的声明类型或者检查表达式类型和值类别 语法 strong decltype strong entity strong strong 1 since C 43 43 11 strong decltype strong expres
  • 【算法】151. 反转字符串中的单词

    链接 xff1a https leetcode cn problems reverse words in a string 给你一个字符串 s xff0c 请你反转字符串中 单词 的顺序 单词 是由非空格字符组成的字符串 s 中使用至少一个
  • TensorFlow中numpy与tensor数据相互转化

    numpy与tensor数据相互转化 xff1a Numpy2Tensor 虽然TensorFlow网络在输入Numpy数据时会自动转换为Tensor来处理 xff0c 但是我们自己也可以去显式的转换 xff1a data tensor 6
  • ESP32环境搭建 HomeKit 平台搭建 苹果智能家居HomeKit

    本文所有操作环境在linux下 xff0c 参考README文档 xff0c 官方sdk获取连接 https github com espressif esp apple homekit adk HomeKit是Apple开发的框架 xff
  • 乐鑫代码中Ring Buffers (环形缓冲区)说明

    本文翻译自乐鑫文档 xff0c 详见链接地址 xff0c 结合用例自行测试 xff0c 欢迎交流 源码链接ringbuf c 项目中用乐鑫的wifi模组 xff0c esp8266 xff0c esp32中发现ringbuf的身影 xff0
  • Qt界面程序中嵌入其他可执行exe程序

    背景 xff1a 本文实验环境 windows10 xff0c qt5 14 由于工作需要写了一个小的qt程序 xff0c 然后在实际使用过程中还要和其他小工具来回切换 xff0c 就想能不能把其他工具代码集成 xff0c 最后发现对我来说
  • Windows10系统旧电脑打包迁移新电脑

    由于需要换了一台新电脑 xff0c 但是配置系统是个繁琐的大工程 xff0c 想想windows的环境变量啥的就头大 xff0c 就想偷懒把系统直接转移到新电脑 xff0c 网上搜索了一下是可行的 xff0c 好多ghost备份还原 xff
  • 线程池1.0和any类

    threadpool h ifndef THREAD POOL H define THREAD POOL H include lt iostream gt include lt memory gt include lt functional
  • esp8266,esp32中的SPI FLASH 访问模式(QIO QOUT DIO DOUT)

    本文 ESP8266 和 ESP32 支持四种不同的 SPI flash 访问模式 xff1a DIO DOUT QIO 和 QOUT 这些可以通过 esptool py write flash 的 flash mode 选项设置 这些控制
  • IMX6ULL裸机启动,IMX6ULL运行freeRtos

    IMX6ULL裸机启动 xff0c IMX6ULL运行freeRtos 裸机启动部分 imx6ull中根据运行代码位置的不同RAM flash SD卡 xff0c 上电会先运行片上ROM中的代码 xff0c 搬运的数据大小是不同的 xff0
  • freeRtos中操作pxCurrentTCB部分汇编指令的理解

    关于freeRtos中操作pxCurrentTCB部分汇编指令的理解 asm void vPortSVCHandler void INDENT OFF PRESERVE8 ldr r3 61 pxCurrentTCB Restore the
  • 嵌入式开发中bin文件合并

    1 tr span class token string 39 000 39 span span class token string 39 377 39 span lt span class token operator span dev
  • 鲁班路由器AX1800折腾记录

    京东云鲁班畅享版64G Ram 512M flash 16M 型号 RF CP 02 ssh功能 当时看到帖子说R2010能直接进入ssh xff0c 果断关闭自动升级 xff0c 这一步就省略了 xff0c 参考如下 鲁班R2010 开通
  • Cannot convert a symbolic Tensor to a numpy array

    使用TF进行计算 xff0c 出现 xff1a Traceback most recent call last File 34 infer py 34 line 14 in lt module gt logits 61 classifier
  • ARM嵌入式系统为什么要做内存对齐

    做嵌入式系统软件开发 xff0c 经常在代码中看到各种各样的对齐 xff0c 很多时候我们都是知其然不知其所以然 xff0c 知道要做好各种对齐 xff0c 但是不明白为什么要对齐 xff0c 不对齐会有哪些后果 xff0c 这篇文章大概总
  • 第一篇博客,Hello World

    Hello World 这是我的CSDN第一篇博客 xff0c 掐指一算 xff0c 从学单片机开始 xff0c 学习开发嵌入式软件已经5年了 终于找到一个小窝能够和大家一起分享交流技术 今天是一个美好的开始 xff0c 你好 xff0c
  • Buildroot构建指南--Overview

    使用Buildroot 让嵌入式Linux系统构建更加便捷 本文以Buildroot 2016 05的版本为基础来讲解 xff0c 不同版本之间有细节差异 xff0c 需要根据读者使用的版本自行调整 Buildroot是什么 Buildro

随机推荐