在做开发设计的前两年,大部分都没有用模拟仿真,有bug就试着改程序,一边改一边调试。
乃至都还不知道硬件配置模拟仿真存有的使用价值,由于一直都没用,并且许多处理芯片也不兼容。
直到有一次在做行车记录器新项目的情况下,触碰到了GRAIN企业的一款单片机设计。
原本我准备是立即进行的,可是大哥非得我将这一处理器的模拟仿真自然环境搭好。
因此我也逐渐在网上搜集信息,不得不说这方面的材料真少,那时候又刚触碰模拟仿真这方面的。
搞了接近大半个月都搞不懂,随后我鼓足勇气跟大哥说,模拟仿真搞不出来,要不我便立即进行写程序烧写进来调试算了吧。
可是老大的意思或是期待我将模拟仿真的自然环境构建出去,我又试了2个礼拜,或是不好,因此就没理他了,立即进行写程序调试。
假如没消耗时间科学研究如何构建调试自然环境,可能我程序都进行40%-50%了。
过去了一个星期,的确我就把程序跑起来了,在屏上展示了一些UI,大哥跟我说模拟仿真解决了?
我讲并没有,跟他说道没模拟仿真也可以调啊,为什么一定要用模拟仿真?
大哥仅仅笑了起来没讲话,我就疑惑他实际是几个意思,但是后边这一新项目没彻底做完就换工作了(并不是由于模拟仿真的事儿)。
直到后边,我还在做一些比较复杂的服务器程序的情况下,我才了解大哥当时为什么要我一定让我将模拟仿真自然环境构建出去。
由于根据硬件配置模拟仿真开发设计高效率最少比并没有模拟仿真高许多!
我举个简便的事例,例如我要看看一个表针偏向的详细地址。
假如我要看看表针偏向的详细地址究竟多少钱,如果有屏和串口通信还行,可以根据屏或是串口通信打印出出去。
但是这一环节也要改程序,调试完之后再把程序注解,或是非常不便。
而用模拟仿真得话,立即在keil上边把电脑鼠标挪动到表针的地方就能立即见到详细地址。
这就是高效率的区别。
因此,模拟仿真的功用在写一些繁杂的商品程序的情况下太主要了!
下边,我给各位共享下,stm32怎么用keil开展模拟仿真。
keil调试专用工具设定
先点一下那一个锤头标志进到keil的设定。
挑选Debug,随后在USE那边点往下拉功能键,挑选St-Link Debugger。
这一步是选用大家采用的烧录器,一般有jtag和st-link,在其中st-link具体商品用的较多,因此以这一为主导。
设定好烧录器之后,大家必须把烧录器联接到板子(我板子是可以直接用st-link的vdd配电,假如你没有用则板子独立配电)。
板子通电,而且st-link联接到板子。
大家下一步点一下Settings,会弹出来图中这种页面,假如Device name表明ARM core….就意味着板子和st-link联接取得成功,可以正常的开展模拟和烧写程序了。
大家单击明确回到到工程项目页面后,点一下鲜红色那一个小高倍放大镜进到模拟仿真方式(留意板子和st-link维持联接和配电)。
进到模拟仿真方式好,大家看右上方我标明的那好多个箭头图标,我红色箭头标明的正中间那一个便是用的较多的断点调试实行,换句话说点一下一下,便会实行一条句子,这一大伙儿下来可以试一下。
假如你看不上断点调试实行很慢,还可以设定中断点,随后点满速运作,让程序全自动跑到中断点部位,随后终止等候你下一步的实际操作。
一般来说,大家调试程序的情况下便是根据这些方法。
例如,现在我需看自变量a的值在不一样程序部位的转变,我能依据图中来设定中断点1,2,随后点满速实行。
假如需看程序里自变量的值,大伙儿还要把watch对话框调出去,依照里面的流程。
随后大家把变量定义键入到watch对话框便捷查询。
大家点满速运作,我们可以见到在”2”标志的地方前边有一个黄色和蓝色的箭头符号,意味着程序已经实行到这儿而且终止。
这个时候,大家看watch对话框a的值,也就是”3”标志的那边,握草,如何没值出去?a这个时候并不是应当相当于0xAA吗?
不要着急,这个是c语言编译器的问题,a界定的是静态变量,c语言编译器把静态变量提升了,并没在存储空间中形成造成。
解决方案有二种:
1.调整keil的提升级别
这一我们可以自主百度,一般我不去改,以防造成其他意外惊喜。
2.把a改为局部变量
改好之后还记得再次编译程序哦,那样就可以见到a的值变成0xFF啦。
上边是模拟仿真看自变量,下边模拟仿真看一下硬件配置。
这个时候我板子上的LED是灭掉的。
图中这一函数公式便是用于操纵LED照亮的,大家再次点满速运作,让程序跑到第24行中断点处。
这个时候惊喜发生了,LED亮啦!!!是否很奇妙???
学好这俩种主要的模拟仿真调试方式,别的的骚操作就靠大伙儿自主充分发挥啦。
假如大伙儿有哪些更快的调试方式也欢迎大家来提醒大家浩渺单片机编程精英团队。
具体的商品调试比这一还需要繁杂一些,调试全过程中也会遇到一些问题。
例如一点断点调试实行,程序就一直执行,问题稀奇古怪,这儿聊不完。
实际上这些问题也很好处理,立即把问题状况在百度搜一下就可以了,毫无疑问会有些人遇到并给予处理的方法。
我一直以来全是那样去处理问题的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。