keil5仿真调试教程(详解proteus仿真步骤)

在做开发的前几年,基本上都没用仿真,有bug就尝试改程序,一边改一边调试。

甚至都还不知道硬件仿真存在的价值,因为一直都没用过,而且很多芯片也不支持。

直到有一次在做行车记录仪项目的时候,接触到了GRAIN公司的一款单片机。

本来我打算是直接开干的,但是老大非要我把这个芯片的仿真环境搭好。

于是我就开始网上搜集资料,不得不说这块的资料真少,那时又刚接触仿真这块的。

搞了将近半个月都搞不定,然后我鼓起勇气跟老大说,仿真搞不出来,要不我就直接开始写程序烧录进去调试算了。

但是老大的意思还是希望我把仿真的环境搭建出来,我又试了2个星期,还是不行,于是就不理他了,直接开始写程序调试。

如果没浪费时间研究怎么搭建调试环境,估计我程序都完成40%-50%了。

过了一个星期,确实我也把程序跑起来了,在屏上显示了一些UI,老大问我仿真搞定了?

我说没有,跟他说没仿真也能调啊,为什么一定要用仿真?

老大只是笑了笑没说话,我也不解他具体是几个意思,不过后面这个项目没完全做完就跳槽了(不是因为仿真的事情)。

直到后面,我在做一些比较复杂的主机程序的时候,我才理解老大当初为什么叫我一定让我把仿真环境搭建出来。

因为通过硬件仿真开发效率至少比没有仿真高很多!

我来举个简单的例子,比如说我要看一个指针指向的地址。

如果我要看指针指向的地址到底是多少,如果有屏和串口还好,可以通过屏或者串口打印出来。

不过这个过程也需要改程序,调试完以后再把程序注释,还是比较麻烦。

而用仿真的话,直接在keil上面把鼠标移动到指针的位置就能直接看到地址。

这就是效率的差别。

所以,仿真的功能在写一些复杂的产品程序的时候太重要了!

下面,我给大家分享下,stm32怎么用keil进行仿真。

keil调试工具设置

keil5仿真调试教程(详解proteus仿真步骤)

先点击那个锤子图标进入keil的设置。

keil5仿真调试教程(详解proteus仿真步骤)

选择Debug,然后在USE那里点下拉按键,选择St-Link Debugger。

这一步是选择我们使用的仿真器,一般有jtag和st-link,其中st-link实际产品用的最多,所以以这个为主。

keil5仿真调试教程(详解proteus仿真步骤)

设置好仿真器以后,我们需要把仿真器连接到板子(我板子是直接用st-link的vdd供电,如果你没用则板子单独供电)

板子上电,并且st-link连接到板子。

keil5仿真调试教程(详解proteus仿真步骤)

我们下一步点击Settings,会弹出上图这个界面,如果Device name显示ARM core….就代表板子和st-link连接成功,可以正常进行仿真和烧录程序了。

keil5仿真调试教程(详解proteus仿真步骤)

我们点击确定返回到工程界面后,点击红色那个小放大镜进入仿真模式(注意板子和st-link保持连接和供电)。

keil5仿真调试教程(详解proteus仿真步骤)

进入仿真模式好,我们看右上角我标注的那几个箭头图标,我红色箭头标注的中间那个就是用的最多的单步执行,也就是说点击一下,就会执行一条语句,这个大家下去可以试下。

keil5仿真调试教程(详解proteus仿真步骤)

如果你嫌弃单步执行太慢,也可以设置断点,然后点全速运行,让程序自动跑到断点位置,然后停止等待你下一步的操作。

一般来说,我们调试程序的时候就是通过这种方式。

keil5仿真调试教程(详解proteus仿真步骤)

比如说,我现在要看变量a的值在不同程序位置的变化,我可以根据上图来设置断点1,2,然后点全速执行。

keil5仿真调试教程(详解proteus仿真步骤)

如果要看程序里变量的值,大家还需要把watch窗口调出来,按照上面的步骤。

keil5仿真调试教程(详解proteus仿真步骤)

然后我们把变量名输入到watch窗口方便查看。

keil5仿真调试教程(详解proteus仿真步骤)

我们点全速运行,我们可以看到在”2”标识的位置前面有个黄色和蓝色的箭头,代表程序已经执行到这里并且停止。

这个时候,我们看watch窗口a的值,也就是”3”标识的那里,卧槽,怎么没值出来?a这个时候不是应该等于0xAA吗?

别着急,这个是编译器的问题,a定义的是局部变量,编译器把局部变量优化了,并没有在内存中生成导致。

解决办法有两种:

1.调节keil的优化等级

这个大家可以自行度娘,一般我不去改,以免产生别的惊喜。

2.把a改成全局变量

keil5仿真调试教程(详解proteus仿真步骤)

改完以后记得重新编译哦,这样就可以看到a的值变为0xFF啦。

上面是仿真看变量,下面仿真看看硬件。

keil5仿真调试教程(详解proteus仿真步骤)

这个时候我板子上的LED是熄灭的。

keil5仿真调试教程(详解proteus仿真步骤)

上图这个函数就是用来控制LED点亮的,我们继续点全速运行,让程序跑到第24行断点处。

keil5仿真调试教程(详解proteus仿真步骤)

这个时候奇迹发生了,LED亮啦!!!是不是很神奇???

学完这两种基本的仿真调试方法,其他的骚操作就靠大家自行发挥啦。

如果大家有什么更好的调试方法也欢迎来告诉我们无际单片机编程团队。

实际的产品调试比这个还要复杂一些,调试过程中也会碰到一些问题。

比如一点单步执行,程序就一直执行,问题千奇百怪,这里说不完。

其实这种问题也很好解决,直接把问题现象在度娘搜一下就可以了,肯定会有人碰到并提供解决的办法。

我一直以来都是这样去解决问题的。

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(2)

大家都在看

  • JJ租号斗地主商 神都探奇密室通关攻略

    神都探奇是一款有趣的探案游戏,有玩家在问如何完美通关密室案?现在我想和大家分享一下神都探奇密室的攻略。让我们了解一下。

    2022年6月24日 投稿
  • 共享单车有哪些品牌(共享单车怎样收费)

    人民出行共享电单车/电动自行车/单车以5G智能慢行交通大数据平台为基础,以新国标公共电动自行车为抓手,专注于5G慢行智慧交通体系化建设,是数据助力,科技助力各地方政府重塑电动自行车…

    2022年4月11日 投稿
  • 好看电影排行榜前十名(好看电影排行榜前十名2020)

    1、《简爱》关于爱情。 像看了一场梦境的油画大展,幕幕绝美。简爱最好的将女性的独立人格呈现出来,我比任何时候都要爱你,但这是最后一次这样说。简爱不依附于爱,无论发生了什么,她永远都…

    2022年6月14日 投稿
  • 硬中华多少钱(硬中华400一条是真的吗)

    很多人结婚的时候不知道应该选择什么品牌的烟,文章为大家介绍了一些品牌和价格还有一些讲究,赶紧来get! 结婚用烟的品牌和价格: 中华香烟是结婚时候经常用到的一款烟。价格不算太贵而且…

    2022年3月25日
  • 社保3000基数能拿多少(社保基数3000是几档)

    居民养老保险和职工养老保险有个区别,个人缴费,全部进入居民的个人养老金账户,而且政府还相应地给予补贴。 我是‬银行的理财师,今天就带‬大家‬一起‬来测算,居民养老保险退休后‬能领取…

    2022年5月14日 投稿
  • 杭州西湖在哪里(浙江旅游杭州西湖旅游地图)

    这是一场预备已久的死刑,杀人者和被杀者都等了很多年。走向刑场的路上,双方都有解脱的感觉。他们都知道,片刻之后,随着刀光闪过,大明王朝便将在秋风中彻底消失。 撰文/郑骁锋 图/图虫·…

    2022年8月23日 投稿
  • 最好的复刻手表去哪里买,看看这几个渠道

    给大家科普顶级复刻手表最靠谱的商家,看看哪个最好?顶级复刻手表在哪里买,复刻手表向生产厂商购买,向手表商购买,这是常见的购买方法。手表专卖店、专柜或者正规的复刻手表店铺都可以买到复…

    2022年7月5日 投稿
  • 什么时候买基金最合适(每年的几月份适合买基金)

    对于不少人来说,选择合适的时机买入基金是非常重要的。因为同样的一款基金,买入时点不同,获得的收益率可能也会不同。甚至经常会出现这样的情况:看到别人晒的图买基金都赚钱了,你自己跟风买…

    2022年5月14日
  • 去桂林旅游要多少钱(桂林旅游必去景点)

    广西桂林一日游只需39元,还包午餐,大家听到这里心里应该都会想,这样的旅游团能去吗?都会觉得里面会有坑等着大家掏钱来填补,但是有一部分爱占便宜的老人还是经不住诱惑,在旅行社工作人员…

    2022年4月21日 投稿
  • 啾啾是什么意思(天阴雨湿声啾啾是什么意思)

    三年级下册第一单元词语解释 1、古诗三首 迟日:春天日渐长,所以说迟日。 泥融:这里指泥土滋润、湿润。 鸳鸯:一种水鸟,雄鸟与雌鸟常双双出没。 蒌蒿:多年生草本植物,花淡黄色,可入…

    2022年5月30日 投稿
品牌推广 在线咨询
返回顶部