登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] [精华总结]关于调试的经验分享

[复制链接]
发表于 2019-2-20 10:30:13 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 打草稿,然后发出来
开始时间: 2019-02-20
结束时间: 2019-02-20
本帖最后由 林雨 于 2019-2-20 10:48 编辑

关于调试的经验

     这个寒假一晃眼就到了尽头,寒假期间比较闲,我投入了大量时间学习单片机,到最后做了一个小车,下面是关于我在调试的时候的一些经验,分享给大家。同时希望大家多说说自己的经验,这样一来大家取长补短,进步更快。
第一点想说的是大家要模块化编程。话说模块化编程简单说就是说将各个功能模块的实现分开写,或者是分多个函数或是分开写成多个文件,这样可以很方便的对单个功能进行验证,如果你把所有的功能都写在一起,试验的难度可想而知。在验证各功能模块的时候要勤动手,不停的修改,不停的下载验证,直到实现你预期的效果。 已标记成功次数.png
     第二点,检查代码要一句一句的看。一个数字,一个标点都不能放过,我们一边看代码,脑子里要一边进行代码所实现的功能的想象,大家知道,你写出来的代码每一句都很重要,不存在这句话重要,而那句话不重要的情况,所以说在检查时最忌讳跳着看代码,自己想当然哪里重要就看哪里哪里不重要,这样是不行的,有些时候错误往往出在那些自己认为不可能出错不起眼的地方。虽然这样说,我有时候也看不仔细,但是我会暗示自己的。
     第三点,用好工具。当你写的程序没有用到外部传感器输入的时候,你就可以用一下KEIL内部自带的虚拟逻辑分析仪 逻辑分析仪.png ,(这是内部逻辑分析仪截图,虽然简陋,用着还可以,毕竟咱还用不到那些高级的功能)看看实时的波形,分析哪里出了问题,关于KEIL内部自带的逻辑分析仪的使用方法,大家可以百度一下,百度上有。宋老师都说了,逻辑分析仪在研究数字系统(我们的单片机就是数字系统)时是一个非常强大的工具。你确定要用的话,可以淘宝入手一个简易的,几十块钱,上位机软件与硬件结合的那种,够咱们现在学单片机了,说到工具,万用表也是一个很好的工具。比如你可以根据电压大致看出PWM波的占空比,比。(如PWM波占空比为50%的时候,你测那个引脚的电压是2.5V。有人可能会问,要么零要么5伏怎么会有2.5伏呢?哈哈,这就有点D/A的意思了,详情大家自己了解。万用表还可以通过测一些引脚的电平,与你预期的电平作比较发现异常。
     最后一点我觉得非常有用:关于错误error和警告warning的处理方法。可能大家遇到这种error和warning的意思就头皮发麻,看着都烦,其实如果你的电脑联网的话,这东西很好解决。假如当你写的代码不长,而他却给你报了好多好多错误的时候,这时候不要慌,因为这些错误可能是因为一个地方或者两个地方引起的,你只要从第1个给你报的错误和警告开始往下看,不要先去看最后一个,要看第1个,说不定前几个解决了,后面的错误都消失了,意思是大家看到错误和警告要做的第一件事就是:不要慌。大多数情况下,大家觉得这种东西不好处理的原因是,你不知道他给你报的错和警告的意思是什么,如果你想知道每一个错误和警告的详细含义方法有很多,我说一种我觉得最简便的。通过KEIL软件内部自带的Help窗口来解决,你点击Keil最上边第1行的最后一个选项,help, help.png 打开之后你可以在搜索框里输入你的错误代号和警告的代号,立刻会出来详细的解析,它会告诉你出现这样情况的原因以及如何解决 已标记帮助界面.png 如果你看不懂他给你的解释,那好办,复制粘贴到有道翻译里边,一般情况下,Keil官方给的话,他翻译的还是比较准确的。 可以查到各种错误.png 这张图里边全是各种错误,点一下就可以看见详细内容 错误举例.png 另一个渠道就是Keil官网也可以查出,但比较繁琐。因为Keil出品了很多软件,并且名字都很相似,不止这一个,你光找到相应的软件板块就比较费劲,并且外网速度比较慢,推荐大家使用第1种方法。不要问我怎么知道这种方式,因为我看过Keil的说明书。它的说明书的官网里有,大家可以浏览一下(英文的)。
好了就到这里了,我期待大家分享的经验。

好懒~~不想说~~~
 楼主| 发表于 2019-2-20 12:49:39 | 显示全部楼层
那个PWM调速的频率别选在人耳可以听到的频率 ,要不以为蜂鸣器在响,我刚开始还以为出鬼了,
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表