自从我工作以来,我遇到过各种系统异常的问题,但是作为一个研发人员,我又不得不去解决问题。在此过程中,我思考了很多,得到了一点结论,分享给大家,希望能对刚入门电子的朋友有点帮助。
在那么多的经历中,我觉得最重要也是最容易被忽略的一条是确认面临的问题具体是怎么样的一个问题。如果不能确认到问题在哪里,那么后面所有采取的方法都是徒劳抑或是被莫名其妙的解决问题了。或者当你想要去求助别人的时候,都不知道怎么描述。其实很多时候,当自己知道怎么描述问题的时候,问题已经浮现了出来。
补个妇联1中的段子:
Nike Furry:What's the problem?
Soldier:That's the biggest problem!
在准确定位好问题点之后,我们可以根据情况采取方法去验证、解决问题。我觉得用数学中的排除法来概括比较合适。排除法包括两个:控制变量法,对比法。
对于一个系统来讲,只有每个部分都正常运行了,系统才能正常运行。反之,当系统中有一个小部分出了问题,系统就会出问题。系统又被分为两大块:软件和硬件。为了确认到底是硬件还是软件,又需要用控制变量法了。找块功能正常的硬件,验证软件的问题。异常重现,软件有问题;异常没有重现,硬件有问题。硬件问题总结起来好像只有量线之间的通断,对比好板子量电压,量电阻,量信号是否异常。软件问题就要检查程序是否如预期写的那样了,调试时又是否如预期那样执行了。更复杂的可能就要示波器看信号了。
在我遇到的问题中,最难以解决的是确定问题点。这个是最容易也是最复杂的了。
期待你能分享你的关于解决问题的心得体会。