当前位置: 首页 > news >正文

第9章.Keil5-MDK软件简介

目录

0. 《STM32单片机自学教程》专栏

9.1 主界面  

9.2 文本格式编辑 

9.3 代码提示&语法检测&代码模版

9.4 其他小技巧 

9.4.1 TAB 键的妙用  

9.4.2 快速定位函数/变量被定义的地方  

9.4.3 快速注释与快速消注释 

9.4.4 快速打开头文件 

9.4.5  查找替换功能 

9.4.6 跨文件查找功能 


0. 《STM32单片机自学教程》专栏

        本文作为专栏《STM32单片机自学教程》专栏其中的一部分,返回专栏总纲,阅读所有文章,点击Link:  

STM32单片机自学教程-[目录总纲]_stm32 学习-CSDN博客

        在正式开始建立MDK工程之前,我们先简要的介绍一下Keil5-MDK软件的常见使用方法。

9.1 主界面  

图9.1-1 Keil5主界面

        本节我们简单介绍一下Keil5软件的界面及一些常用操作。后面创建例程的时候,我们还会详细讲解操作步骤。图9.1-1为KEIL5 的主窗口界面.分为了一下几个部分:

        菜单栏:包含File文件、Edit编辑、View视图、Project工程、Help帮助等
        工具栏:常见工具的快捷按钮,下面会重点介绍一些常用的工具
        工程窗口:主要显示项目内容,文件组、源文件和头文件等
        编辑窗口:编写代码的地方
        消息窗口:反馈编译信息、烧录信息等
        状态栏:光标的行列位置、字符编码、键盘NUM锁定等一些状态信息

        工具栏里有几类常用的按钮是我们经常要用到的,如图9.1-2. 

 图9.1-2 工具栏常用按钮

        ① 编译类快捷按钮:对代码进行编译下载 

按钮英文名称中文含义快捷键
Translate 编译当前文件Ctrl + F7
Build编译工程目标F7
Rebuild重新编译所有目标文件
Batch Build分批编译(多工程) –
Stop Build停止编译(正在编译时有效)   – –
Download下载程序F8

        ② 工程目标选项又称魔术棒:即对工程目标的配置,如芯片设备选择、C/C++ 选项、仿真配
置等等 

        ③ 调试类按钮:

英文名称中文描述快捷键
Start/Stop Debug Session打开/关闭调试Ctrl + F5
Insert/Remove Breakpoint插入/移除断点F9
Enable/Disable Breakpoint使能/失能断点Ctrl + F9
Disable All Breakpoints失能所有断点
Kill All Breakpoints取消所有断点Ctrl + Shift + F9

9.2 文本格式编辑 

        文本格式编辑,主要是设置一些关键字、注释、数字等的颜色和字体。如果刚装Keil5,没
进行字体颜色配置,我们的界面效果如图9.2-1所示,看上去不是特别舒服。

图9.2-1  Keil5默认文本效果 

我们可以在软件中对字体颜色大小等进行自定义。我们可以在工具条上点击“扳手”按钮,如下图位置。

        弹出的编辑对话框,如图9.2-2所示:

        Editor选项卡中:  

 图9.2-2 配置对话框中Editor选项卡 

        ①设置代码的编码格式:可以选择Chinese GB2312(Simplified)或UTF-8,如果打开别人的例程出现中文乱码,可以尝试修改这个Encoding格式。 

        ②设置 C/C++文件,TAB 键的大小为 4 个字符 。

        Colors & Fonts 选项卡:

 图9.2-3 配置对话框中Colors&Fonts 选项卡

        Colors&Fonts选项卡,在该选项卡内,我们就可以设置自己的代码的字体和颜色了。由于我们使用的是C语言,故在Window下面选择:C/C++EditorFiles在右边就可以看到相应的元素了,如图9.2-3。点击各个元素(Element)修改为你喜欢的颜色,也可以在Font栏设置你字体的类型(这个软件支持的字体类型实在是少的可怜,这里面没有一个我喜欢的字体),以及字体的大小等。字体大小,也可以直接按住ctrl+鼠标滚轮,进行放大或者缩小.
        User Keywords选项卡

图9.2-4 配置对话框中User Keywords选项卡 

        点击 User  Keywords 选项卡,设置用户定义关键字,以便用户自定义关键字也显示对应的颜色(对应图 9.2-3中的 User Keyword/Lable )。在 User Keywords 选项卡对话框输入你自己定义的关键字,如图 9.2-4示。如我们设置了 uint8_t、uint16_t 和 uint32_t 等三个用户自定义关键字,相当于 unsigned char、unsigned  short 和 unsigned  int。如果你还有其他自定义关键字,在这里添加即可。设置成之后点击OK,就可以在主界面看到你所修改后的结果。  

9.3 代码提示&语法检测&代码模版

        Text Completion选项卡: 

图9.3-1 配置对话框中Text Completion选项卡 

        配置对话框,选择 Text Completion选项卡,如图9.3-1,有3个地方是对我们比较有帮助的。

①代码提示:

        上图中的“ShowCodeCompletionListFor”标签中有4个选项:
        Strut/ClassMembers:用于开启结构体/类成员提示功能。
        FunctionParameters:用于开启函数参数提示功能。
        Symbolsafterxxcharacters:用于开启代码提示功能,即在输入多少个字符以后,提示匹配的内容(比如函数名字、结构体名字、变量名字等),这里默认设置3个字符以后,就开始提示。如图9.3-2.

        ENTER/TAB as fill-up character:使用回车和 TAB 键填充字符。

 图9.3-2 代码提示

②动态语法检测: 

        “Dynamic Syntax Checking”则用于开启动态语法检测,比如编写的代码存在语法错误的时,会在对应行前面出现X图标,如出现警告,则会出现图标,将鼠标光标放图标上面,则会提示产生的错误/警告的原因,如图 9.3-3 所示:

图9.3-3 动态语法检测

③代码模版: 

        图9.3-1中的③和④为代码模版,其中③是一段代码的名字,④是这个名字对应的具体代码,然后在主界面的工程窗口中,选择“Template”选项卡,双击“代码名”,便可以将③中代码名字对应的一段代码插入当前代码编辑区光标所在位置中,还是非常方便的,如图9.3-4.

9.3-4 代码模版

9.4 其他小技巧 

9.4.1 TAB 键的妙用  

9.4.2 快速定位函数/变量被定义的地方  

9.4.3 快速注释与快速消注释 

9.4.4 快速打开头文件 

9.4.5  查找替换功能 

9.4.6 跨文件查找功能 

未完待续....

参考资料:

        【1】哔站江协科技STM32入门教程

        【2】《STM32单片机原理与项目实战》刘龙、高照玲、田华著

        【3】《ARM Cortex-M3嵌入式原理及应用》黄可亚著

        【4】《STM32嵌入式微控制器快速上手》陈志旺著

        【5】《STM32单片机应用与全案例实践》沈红卫等著

        【6】《野火STM32开发指南》

        【7】《正点原子STM32开发指南》 

相关文章:

第9章.Keil5-MDK软件简介

目录 0. 《STM32单片机自学教程》专栏 9.1 主界面 9.2 文本格式编辑 9.3 代码提示&语法检测&代码模版 9.4 其他小技巧 9.4.1 TAB 键的妙用 9.4.2 快速定位函数/变量被定义的地方 9.4.3 快速注释与快速消注释 9.4.4 快速打开头文件 9.4.5 查找替换…...

mysql中utf8字符集中文字节长度统计如何统计到2个字节一个汉字

在 MySQL 的 utf8 字符集中(也被称为 utf8mb3),中文字符实际上并不是用2个字节来表示的,而是使用3个字节。这是 UTF-8 编码的一个特性,它使用1到4个字节来表示一个字符,具体取决于字符的 Unicode 码点。 对…...

如何实现Linux双网卡同时连接内网和外网的配置?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...

ASCLL码表以及字符的相加减

ASCLL码表完整版及解释_acssll码-CSDN博客 #include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5];int isdigit(int c) {if (c > 0 && c < 9)return 1;return 0; }int main(int argc…...

一键修复所有dll缺失,教大家解决丢失的dll文件

修复所有DLL&#xff08;动态链接库&#xff09;文件缺失的问题通常不可能通过单一的"一键修复"按钮来实现&#xff0c;因为DLL文件缺失可能由各种不同的原因导致&#xff0c;比如应用程序安装不正确、病毒感染、或系统文件损坏等。 使用内置的系统文件检查器&#x…...

wsl2安装rancher并导入和创建k8s集群

环境准备 安装wsl2点击此文]ubuntu20.04安装docker 点击此文,安装完成后docker镜像仓库改成阿里云镜像加速地址.如果不熟请点击此文 docker 安装rancher 启动wsl,根据官方文档以root身份执行 sudo docker run -d --restartunless-stopped -p 80:80 -p 443:443 --privileged …...

内网环境ubuntu设置静态ip、DNS、路由,不影响网络访问

内网环境通常是有线的&#xff0c;通过服务器的ip、mac、dns地址访问网络才生效的&#xff0c;如果ip地址变了&#xff0c;就不能访问网络了。 如果你的ip地址变了&#xff0c;或者要防止ip变更影响网络访问&#xff0c;就要设置 1、依次点击右上角的电源-设置&#xff0c;在打…...

学习前端第三十七天(静态属性静态方法、类检查、错误处理)

一、静态属性和静态方法 1、静态属性静态方法 在属性和方法前加上static&#xff0c;创建属于类自己的属性和方法 class Person {// 加static&#xff0c;属于类自己的static name "xc"; // 类的name属性static height 183; // 类的height属性static age 20;…...

全网最全的基于电机控制的38类simulink仿真全家桶----新手大礼包

整理了基于电机的38种simulink仿真全家桶&#xff0c;包含多种资料&#xff0c;类型齐全十分适合新手学习使用。包括但是不局限于以下&#xff1a; 1、基于多电平逆变器的无刷直流电机驱动simulink仿真 2、基于负载转矩的感应电机速度控制simulink仿真 3、基于滑膜观测器的永…...

Python使用asyncio包实现异步编程

1. 异步编程 异步编程是一种编程范式&#xff0c;用于处理程序中需要等待异步操作完成后才能继续执行的情况。异步编程允许程序在执行耗时的操作时不被阻塞&#xff0c;而是在等待操作完成时继续执行其他任务。这对于处理诸如文件 I/O、网络请求、定时器等需要等待的操作非常有…...

获取文件夹下的vue文件形成组件,require.context

前言&#xff1a;项目中现有一个文件里面包含所有需要用到的组件&#xff0c;如果一个个的去import&#xff0c;则会非常麻烦&#xff0c;现有require.context去实现&#xff0c; 1、require.context var request require.context(‘./module’, true, /.js$/) require.cont…...

2024软件测试必问的常见面试题1000问!

01、您所熟悉的测试用例设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答&#xff1a;有黑盒和白盒两种测试种类&#xff0c;黑盒有等价类划分法&#xff0c;边界分析法&#xff0c;因果图法和错误猜测法。白盒有逻辑覆盖法&…...

C++列表实现

文章目录 一、listView相关内容主要思想实例全部代码 二、QTreeView 一、listView 相关内容 QAbstractItemModel&#xff1a;一个抽象的类&#xff0c;为数据项模型提供抽象的接口&#xff0c;常见的的数据模型列如&#xff1a;QStringListModel,QStandardItemMode,QDirModel…...

论文合集整理推荐2024.5.15

‍2012年论文合集&#xff1a;论文入口 ‍2019年论文合集&#xff1a;论文入口 2022年论文合集&#xff1a;论文入口 2023年论文合集&#xff1a;论文入口 2024年论文合集&#xff1a;论文入口...

JavaScript的跳转传参方式

在JavaScript中&#xff0c;页面跳转并传递参数通常可以通过几种不同的方式来实现。下面是一些常见的方法&#xff1a; 1.URL参数&#xff08;Query String&#xff09; 这是最常见的方式&#xff0c;通过在URL的末尾添加参数来实现。例如&#xff1a; javascriptwindow.loc…...

非阻塞模式下的读写操作

实现文件IO的非阻塞模式的读写操作 fcntl函数 功能&#xff1a; #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); // arg表示可变参数&#xff0c;由cmd决定 fcntl()对打开的文件描述符fd执行下面描述的操作之一。操作由cmd决…...

Google Ads谷歌广告账户被封停怎么办?

跨境出海业务少不了需要做Google Ads推广业务&#xff1b;其中让投手们闻风丧胆的消息就是帐户被暂停。当 Google 检测到任何违反其政策且可能损害用户在线体验的行为时&#xff0c;就会发生这种情况。那么如何在做广告推广的同时&#xff0c;保证账号不被封禁呢&#xff1f;看…...

AI大模型探索之路-训练篇23:ChatGLM3微调实战-基于P-Tuning V2技术的实践指南

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…...

掌握核心概念:Java高级面试难题精解(一)

Java 高级面试问题及答案 问题1: 在Java中&#xff0c;什么是泛型擦除&#xff1f;为什么需要它&#xff1f; 答案&#xff1a; 泛型擦除是Java编译器的一个特性&#xff0c;它在运行时移除泛型类型信息&#xff0c;以确保类型安全。Java的泛型是在J2SE 1.5中引入的&#xff…...

Nagle算法

Nagle算法简介 Nagle算法主要是避免发送小的数据包&#xff0c;要求TCP连接上最多只能有一个未被确认的小分组&#xff0c;在该分组的确认到达之前不能发送其他的小分组。 在默认的情况下,Nagle算法是默认开启的&#xff0c;Nagle算法比较适用于发送方发送大批量的小数据&…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...