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


我们点全速运行,我们可以看到在”2”标识的位置前面有个黄色和蓝色的箭头,代表程序已经执行到这里并且停止 。
这个时候,我们看watch窗口a的值,也就是”3”标识的那里,卧槽,怎么没值出来?a这个时候不是应该等于0xAA吗?
别着急,这个是编译器的问题,a定义的是局部变量,编译器把局部变量优化了,并没有在内存中生成导致 。
解决办法有两种:
1.调节keil的优化等级
这个大家可以自行度娘,一般我不去改,以免产生别的惊喜 。
2.把a改成全局变量
改完以后记得重新编译哦,这样就可以看到a的值变为0xFF啦 。
上面是仿真看变量,下面仿真看看硬件 。
这个时候我板子上的LED是熄灭的 。
上图这个函数就是用来控制LED点亮的,我们继续点全速运行,让程序跑到第24行断点处 。
这个时候奇迹发生了,LED亮啦!!!是不是很神奇???
学完这两种基本的仿真调试方法,其他的骚操作就靠大家自行发挥啦 。
如果大家有什么更好的调试方法也欢迎来告诉我们无际单片机编程团队 。
实际的产品调试比这个还要复杂一些,调试过程中也会碰到一些问题 。
比如一点单步执行,程序就一直执行,问题千奇百怪,这里说不完 。
其实这种问题也很好解决,直接把问题现象在度娘搜一下就可以了,肯定会有人碰到并提供解决的办法 。
我一直以来都是这样去解决问题的 。