我对外号称做硬件的,其实也自己写单片机软件。不管是做硬件还是软件,我的一个基本原则就是:做硬件的时候假设软件是存在缺陷的,我的硬件如何最大程度地消除软件缺陷带来的问题,比如各端口的默认输出状态,程序出现意外时外设会有什么动作。反过来,做软件的时候一定要假设硬件是存在缺陷的,比如通讯误码率的问题,软件如何识别误码,如何重发等等。总之一句话:出了问题,纠缠于硬件还是软件的问题是无聊的,如何解决问题才是正道。我这么说,可能是因为我自己做的硬件全部是自己写的程序,反正,千错万错都是我的错。
实际上,个人感觉,软件入门的门槛还是比硬件低一些,举个最简单的例子:学软件,基本上有一台能上网的电脑就行了;学硬件的话,有了万用表,又想着要买示波器,有了普通示波器,还想要频率高一点的,更不要说还要画板子,打样,购买元器件的开支了,而这些投入之后,还不一定保证能学会。 |