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

在最初几年的发展中,基本上没有使用模拟。如果有错误,试着改变程序,同时调试它。我甚至不知道硬件仿真的价值,因为从来没用过,很多芯片都不支持。直到有一次,我在做行车记录仪项目的时候,接触到了一个粮食公司的单片机。我本来打算直接启动的,但是老板坚持让我设置这个...

在最初几年的发展中,基本上没有使用模拟。如果有错误,试着改变程序,同时调试它。

我甚至不知道硬件仿真的价值,因为从来没用过,很多芯片都不支持。

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

我本来打算直接启动的,但是老板坚持让我设置这个芯片的仿真环境。

于是我开始在网上搜集资料,不得不说这一块的资料真的很少,而且当时也是刚接触到模拟这一块。

近半个月的工作,我做不下去了。然后我鼓起勇气跟老板说,模拟做不了,不然我就直接开始写程序烧了调试。

但是老板还是想让我建立模拟环境。我又试了2周,还是不行,就不理他了,开始写程序调试。

如果不是浪费时间研究如何搭建调试环境,估计我的程序早就完成40%-50%了。

一周后,我确实运行了程序,并在屏幕上显示了一些UI。老板问我模拟做好了吗?

我说不用,告诉他不用模拟也能调。为什么一定要用模拟?

老板只是笑笑不说话,我也不明白他什么意思。然而,他在这个项目没有完全完成后就跳槽了(不是因为模拟)。

直到后来,我在做一些复杂的主机程序的时候,我才明白为什么老板让我设置模拟环境。

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

我举个简单的例子。例如,我希望看到指针指向的地址。

如果我想看指针所指的地址,如果有屏幕或者串口,我可以通过屏幕或者串口打印出来。

但是这个过程也需要修改程序,调试后给程序做注解比较麻烦。

使用simulation,将鼠标移动到keil上的指针上,就可以直接看到地址。

这就是效率的差别。

所以在编写一些复杂的产品程序时,仿真的作用太重要了!

下面,我给大家分享一下如何用keil模拟stm32。

keil调试工具设置

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

选择Debug,然后单击使用中的下拉按钮,并选择St-Link Debugger。

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

设置好仿真器后,我们需要将仿真器连接到板(我的板直接用st-link的vdd供电,不用的话,板单独供电)

板上电,st-link连接到板上。

接下来,当我们点击设置时,会弹出上图所示的界面。如果设备名称显示ARM内核

在我们点击OK返回工程界面后,点击红色放大镜进入仿真模式(注意板卡和st-link已连接并通电)。

进入模拟模式就好。让我们看看我在右上角标记的箭头图标。中间用我的红色箭头标记的是使用最多的单步执行。也就是说,一旦点击,就会执行一条语句。你可以试试这个。

如果不喜欢单步执行慢,也可以设置一个断点,然后全速运行,让程序自动运行到断点,然后停止等待你的下一次操作。

一般来说,我们就是这样调试程序的。

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

如果要查看程序中变量的值,还需要调出watch窗口,按照上面的步骤操作。

然后我们将变量名输入到监视窗口中,以便于查看。

我们正在全速运行,在标有“2”的位置前面可以看到一个黄蓝相间的箭头,表示程序已经执行到这里,停止了。

这时候我们再来看手表窗口A的值,也就是标有“3”的地方,躺在槽里。为什么不值得?这时候A不应该等于0xAA吗?

不用担心,这是编译器的问题。a定义局部变量,编译器优化局部变量,局部变量不是在内存中生成的。

有两种解决方案:

1。调整keil的优化级别

你可以自己支配时间。一般我不改是为了避免其他惊喜。

2。将A更改为全局变量

更改后记得重新编译,这样可以看到A的值变成了0xFF。

以上是模拟变量,以下是模拟硬件。

此时,我的板上的LED不亮。

以上功能用于控制LED照明。让我们继续全速运行,让程序运行到第24行的断点。

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

学会了模拟和调试这两个基本方法,剩下的骚操作就看大家自己的发挥了。

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

实际产品调试比这个复杂,调试过程中会遇到一些问题。

比如一个程序单步执行,程序会一直执行下去,还有各种各样的问题,这里说不完。

其实这种问题也很好解决。直接在度娘里搜现象就行了,肯定会有人碰到,并提供解决方案。

这是我解决问题的方式。

本文来自少年我念你投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/635325.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-15
下一篇 07-15

相关推荐

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

    在最初几年的发展中,基本上没有使用模拟。如果有错误,试着改变程序,同时调试它。我甚至不知道硬件仿真的价值,因为从来没用过,很多芯片都不支持。直到有一次,我在做行车记录仪项目的时候,接触到了一个粮食公司的单片机。我本来打算直接启动的,但是老板坚持让我设置这个

    2023-07-15 16:12:01
    588 0
  • abplc编程软件中文版入门 数控编程仿真软件推荐

    课堂主题了解AB PLC的发展历史,看看百年品牌的故事。发展历史AB或伺服驱动器等产品的包装上不仅印有艾伦-布拉德利公司的标志,还印有罗克韦尔自动化公司罗克韦尔自动化的标志。为什么一个产品有两个logos?这得从很久以前说起...1903年12月12日,美国人斯坦顿艾伦博士(Stant

    2023-07-01 11:47:01
    716 0
  • 电脑版数控仿真软件哪个好 仿真数控编程软件推荐

    数控编程和计算机编程一样,有自己的“语言”不同的是,现在电脑市场是微软Windows主导的。没有一个数控系统具有绝对的优势,也就是说,数控系统一时之间是无法兼容的。所以,当我们要使用数控机床时,首先要知道我们已经拥有的机床采用的是什么系统。数控编程在机

    2023-06-30 16:34:01
    591 0
  • 仿真机器人女友在哪买?除了生宝宝,什么都能做?

    21世纪以来,随着全球科技的飞速发展,电影情节中的机器人已经成为现实,比如家庭生活中的扫地机器人。更让人惊讶的是,有消息称日本研发出了一款“老婆机器人”,外形逼真,长相甜美,温柔贤惠,厨房下有厅堂…可以满足宅男对未来伴侣的所有幻想。经过市场调研,满意率高达9

    2023-05-23 08:13:01
    208 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信