使用Keil uVision5进行开发的必备知识
1. keil中注释汉字出现乱码:
edit->configuration->editor->汉字简化版
2. 变量跳转:
右击->go to defitination到函数定义处
右击->go to reference到函数声明
3. Xtal无法定义
Xtal (MHz) 指定用于配置调试器和闪存编程器的设备的 XTAL 频率。XTAL反映了外部连接到器件的主振荡器。Keil5.35版本及以后不能定义此频率。此设置在 .uvprojx 项目中处于禁用状态(灰显为<未定义>),并且只能在使用 .uvproj 文件的项目中设置。
注:在仿真时,设置一次就可以,此处不设值无碍。
4. keil4和keil5的不同
keil4为uvproj,keil5为uvprojx,keil5可打开前者文件,反之则不能。
keil5打开前者时会将其转换为uvprojx文件,而原文件会变成uvproj.saved_uv4。用keil4打开时需要修改文件名。
5. 黄色和蓝色三角形
黄色三角形:代表将要执行的程序,也就是执行到此处,下一步就要执行这行代码了
蓝色三角形:代表光标所在的行
6. 断点
断点的作用是可以让程序运行到设置的断点处,然后查看各种变量和寄存器中的数值。
7. Translate,Build,Rebuild All和load
Translate是编译当前改动的源文件,在这个过程中检查语法错误。但并不生成可执行文件。
Build是只编译工程中上次修改的文件及其它依赖于这些修改过的文件的模块,同时重新链接生成可执行文件。如果工程之前没编译链接过,它会直接调用Rebuild All。
Rebuild是不管工程的文件有没有编译过,会对工程中所有文件重新进行编译生成可执行文件,因此时间较长。
load是加载hex文件。
因此当平时对工程源文件里面main.c之类的进行修改时,选择用build编译链接生成可执行文件就行了
8. 仿真配置
左边是软件仿真,右边是硬件仿真,点下拉框选“J-LINK/J-TRACE”;“Debug”下,选“JTAG”或“SW”,MAX为下载速率。
Trace”标签下:
若选择“SW”,则勾选“Enable”选项,在“Core”框中输入MCU实际工作时钟频率(就是单片机以什么频率来执行指令的,MDK会用它来计算时间),再勾选“Autodetect max SW0 Clock”。
若选择的“JTAG”,先勾选“Enable”,在“Core”中设好时钟频率,之后去掉勾选的“Enable”,因为“JTAG”模式不支持“Trace”功能。
9. 右下角的t0,t1,t2
“t0”表示程序开始运行到现在的时间,是不能复位的,t1,t2可以随便复位,就可以用来测具体某一个函数或某一行程序的运行时间。
具体操作为:在要测试的代码前加一个断点,当程序运行到目标行时会停下,然后复位“t1”或“t2”,并在下一行代码前加断点,然后继续运行程序,程序会停在下一行代码前,这个时候“t1”的值就是目标行程序的运行时间。
10. debug状态的几个step按钮含义
第1个图标是复位调试。
第2个图标是全速运行。
第3个图标是进入全速运行状态后,通过这个图标可以停止全速运行。
第4个图标是Step(Step one line)单步调试,每次点击运行一行代码,所以只要有子函数就会进入。
第5个图标是Step Over(Step over the current line)每次点击以函数为单位运行,不会进入函数内部。
第6个图标是Step out(Step out of the current line)点击后退出当前运行的函数,执行下一个函数。
第7个图标是Run to Cursor Line(Run to the current cursor line)直接运行到用户设置的行,设置方法比较简单,用户仅需在那行使用鼠标左键点击一下,可以看到前面有个箭头
以下10条为本人学习记录,供大家参考:
- translate图标变成灰色,无法点击原因:
(1)如果是新建工程,可能是头文件的路径不对;
(2)如果是原来的工程,则是代码中有错误
(3)界面处于.h文件时,依旧无法translate,需要将将界面置于.c文件(在.h页面,不能进行translate,只有.c文件界面可以) - debug全速运行后watch中变量无法删除:
在debug后,未全速运行时可以删除watch窗口中的变量,全速运行后不可以删除。并且只有全局变量可以在watch窗口中查看内部值。 - “no jlink found ”报错,无法识别JLINK原因:
(1)目标CPU型号选择错误,可以通过JFlash软件来配置,F0系列选择Cortex-M0即可。(也可以删除JLinkSettings配置设置文件,然后点击keil中魔法棒,debug中的setting部分,重新选择芯片型号)
(2)接线出错(硬件连接出错) - keil编译提示Note: object file renamed from “xxx.o“ to “xxx_1.o“
原因是有.c文件被重复定义,需要打开项目管理,把Drivers/CMSIS文件夹下的重复文件删掉即可解决。 - xxxx.axf: Error: L6218E: Undefined symbol Data (referred from jwq3399.o).
(1)未添加头文件。若添加头文件后仍无法打开有报错,可能头文件所放的位置不正确,编译器无法找到。
(2)在.h头文件中声明变量为全局变量后,没有在.c源文件中声明(常见原因);
(3)函数名和声明的函数名不一致(常见原因)
(4)所有在main.c文件中使用的自定义函数部分需要在main.c文件中进行声明 - 消除工程中的黑色星号:
(1)鼠标右键点击文件,点击Options for file
(2)如图所示,点击Default
(3)如图所示,点击OK - 串口无法发送数据:
(1)串口配置好后,无法发送数据:按下复位键即可解决
(2)串口重定向后printf仍无法打印:如:printf(“xxx\n”);后面一定要跟\n串口才能打印出信息,一般加“\r\n” - 为keil5中的工程改名:
(1)先将工程中后缀为".uvoptx"和".uvprojx"的文件改名
(2)打开工程,在Manage Project Items中将project target改名
(3)点击魔术棒,在output中,将Name of Execuable改名,然后关闭
(4)编译,保存 - MDK调试崩溃:Encountered an improper argument原因及解决办法:
(1)路径深或者有中文,将工程放在桌面路径下,工程名不要有中文。
(2)退出调试时未清除所有断点,建议清除。 - 自定义结构体无法识别,总报错:
keil5 平台下,自定义一个枚举结构体,在声明变量时,需要将声明放在结构体后面。否则无法识别,会报错
使用Keil uVision5进行开发的必备知识相关推荐
- Android Camera驱动开发入门必备知识
camera驱动开发所需要具备基础知识,如果你还没有了解过camera模块,那么这些基础必备的知识,将会对你比较有用,俗话说"磨刀不误砍柴工",基本功配置好了,相信你在做camer ...
- vue开发项目必备知识
Vue项目开发相关问题总结. 一.创建一个项目(两种方式) 1.通过CLI命令行创建,具体步骤如下:(1)Node 版本要求 Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11 ...
- android相机开发书籍,Android Camera 驱动开发入门必备知识有哪些?
1:硬件相关:简单的数字电路要懂,看的懂电路图(这个很简单),能根据电路找到相应Camera硬件连接的GPIO,并根据芯片手册配置GPIO为相应的模式:比如GPIO模式,输入IO或输出IO:或配置成P ...
- 一文讲清楚MySQL事务隔离级别和实现原理,后台开发人员必备知识
经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下. MySQL 事务 本文所说的 MySQL 事务都是指在 I ...
- 移动web开发(一)——移动web开发必备知识
参考: 移动终端开发必备知识.http://isux.tencent.com/mobile-development-essential-knowledge.html
- 移动端webapp开发必备知识
转载自:移动终端开发必备知识 转载自:移动端webapp开发必备知识 请尊重版权,转载请注明来源,多谢~~ 移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动 ...
- 移动终端开发必备知识(转载)
移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动终端的WebAPP也开始跟进了.本文主要介绍webapp的开发与调试的相关知识和经验,以及给出几种可选的解决 ...
- WCF分布式开发必备知识(4):Web Service(转)
今天继续我们的WCF分布式开发必备知识系列文章的第4节:Web Service.前3节我们分别介绍了MSMQ消息队列/.Net Remoting/Enterprise Services三个相关的技术. ...
- STM32开发必备知识篇:STM32的运行机制
时间飞逝,转眼间已经硕士毕业工作第四年了,嵌入式研发成长道路上曲折坎坷,所以这也是我今年撰写博客的初心,即分享技术积累和研发经验,目前主要分为STM32和FPGA两个专辑,都包括开发必备知识篇和实战项 ...
最新文章
- PHP创建图像的应用!!!!
- Python-Opencv学习-实验-1:工具安装
- OpenCASCADE绘制测试线束:数据交换命令之XDE 通用命令
- SAP 电商云 Spartacus UI Quick Order 的路由和 CMS 实现
- Spark交互式分析平台Apache Zeppelin的安装
- 8a 中断 传感器采集_加速度传感器的安装,你get了吗
- CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
- k8s glusterfs mysql_k8s使用glusterfs实现动态持久化存储
- 使用jq工具在Shell命令行处理JSON数据
- 数据库的架构设计与性能优化
- win10跳过计算机密码,Win10怎么取消开机密码?Win10如何跳过开机密码?
- 学习ubuntu基础看完这一篇就够了,我是貔貅带你打开ubuntu的大门
- uni-app实现本地打包安卓APK
- vue引入 wps在线编辑版
- 2017安防民用市场现状及特点浅析
- android 小白点代码,Android实现小圆点显示未读功能
- 亚马逊跨境电商平台怎么入驻?
- SpringBoot(一):项目概述
- 微信小程序如何直接分享到朋友圈?
- 黑马程序员—C#多线程