本帖最后由 林雨 于 2019-2-20 10:48 编辑
关于调试的经验
这个寒假一晃眼就到了尽头,寒假期间比较闲,我投入了大量时间学习单片机,到最后做了一个小车,下面是关于我在调试的时候的一些经验,分享给大家。同时希望大家多说说自己的经验,这样一来大家取长补短,进步更快。 第一点想说的是大家要模块化编程。话说模块化编程简单说就是说将各个功能模块的实现分开写,或者是分多个函数或是分开写成多个文件,这样可以很方便的对单个功能进行验证,如果你把所有的功能都写在一起,试验的难度可想而知。在验证各功能模块的时候要勤动手,不停的修改,不停的下载验证,直到实现你预期的效果。
第二点,检查代码要一句一句的看。一个数字,一个标点都不能放过,我们一边看代码,脑子里要一边进行代码所实现的功能的想象,大家知道,你写出来的代码每一句都很重要,不存在这句话重要,而那句话不重要的情况,所以说在检查时最忌讳跳着看代码,自己想当然哪里重要就看哪里哪里不重要,这样是不行的,有些时候错误往往出在那些自己认为不可能出错不起眼的地方。虽然这样说,我有时候也看不仔细,但是我会暗示自己的。 第三点,用好工具。当你写的程序没有用到外部传感器输入的时候,你就可以用一下KEIL内部自带的虚拟逻辑分析仪
,(这是内部逻辑分析仪截图,虽然简陋,用着还可以,毕竟咱还用不到那些高级的功能)看看实时的波形,分析哪里出了问题,关于KEIL内部自带的逻辑分析仪的使用方法,大家可以百度一下,百度上有。宋老师都说了,逻辑分析仪在研究数字系统(我们的单片机就是数字系统)时是一个非常强大的工具。你确定要用的话,可以淘宝入手一个简易的,几十块钱,上位机软件与硬件结合的那种,够咱们现在学单片机了,说到工具,万用表也是一个很好的工具。比如你可以根据电压大致看出PWM波的占空比,比。(如PWM波占空比为50%的时候,你测那个引脚的电压是2.5V。有人可能会问,要么零要么5伏怎么会有2.5伏呢?哈哈,这就有点D/A的意思了,详情大家自己了解。万用表还可以通过测一些引脚的电平,与你预期的电平作比较发现异常。 好了就到这里了,我期待大家分享的经验。
|