如何学习单片机编程?

如何学习单片机编程?我是一位单片机爱好者,对于如何学习编程,还是深有体会的。

首先,要具备有单片机方面的基础知识我在校学过8051单片机汇编语言和FORTRAN语言,再就是微机原理和单片机工作原理,以及模电、数电、电路分析和电器控制。基础知识,我是有了,但你们发现没有,我没有学过C语言。我和大多数毕业生一样,基础会一点,但不是很熟悉。工作后,我对自己进行分析,发现除了做技术,别无他长。于是,我边工作边复习书本上的知识,并且还做了详细的笔记,把认为有价值的东西记在笔记本上,包括抄电路图,抄程序,并记录学习的心得体会。因为我熟悉8051单片机,当然学习的是这种单片机。由于那时网络不发达,信息闭塞,和外人交流很难,只能靠自己去理解,有时为了一个问题需要考虑很多天,问周围的人他们也不懂。一个偶然的机会,我遇到一位中专生,从他那里搞到KEIL编译器和烧录器,然后向他学习怎么编译生成HEX文件和烧录程序。单片机最简单的编程,就是对IO口进行操作,我很快就可以烧录自己的程序了。但是,他告诉我,你不会C语言,将来很难提高。于是,我又开始自学C语言。由于有FORTRAN语言基础,理解C语言还是比较容易的。为了能记住知识要点,我总是先看书,然后做笔记,有时还要到电脑上调试仿真,看看自己理解的和别人的结果是不是一样。当然一开始写程序时,就是把别人的代码看懂,然后在电脑上抄一遍,再编译,运行。有时候抄都能抄错,不是少了分号,就是少了逗号,最要命的就是用了中文符号。搞错了,自己也找不到原因,请教别人,别人说忙,懒得帮我看。总之,要先有单片机基础知识,才可以自学,否则,还是去花钱去培训机构学习吧。

其次是动眼、动脑、动手,多问,多总结。我叫它“三动两多”。动眼,就是看和单片机有关的书。动脑,就是思考和学习和单片机有关的问题,包括分析问题,解决问题。动手,就是写代码,编译调试程序。多问,就是多问自己为什么,有没有其他更好的方法来实现,包括给自己提问题,能找到老师问更好,大多是没有老师的,只能靠自己了。多总结是很重要的,避免下次踩坑。勤能补拙,书山有路勤为径,学海无涯苦作舟。你既然选择了技术,就选择了一辈子都在勤劳中度过。尤其是在打基础的时候,这几点必须要牢记。

再次就是测试单片机上所有的硬件资源。单片机的硬件资源通常有边沿中断、电平中断、IO输入输出,定时器、计数器、串口、复位等,以及I2C通讯和SPI通讯。将这些硬件通通写一个测试程序,看看运行结果和自己的设计意图是否一致。这样做的好处是,防止时间久了,自己会遗忘。能买到开发板最好,没有板子,只能软件仿真了。另外写程序时一定要做注释,多看看高手写的程序,不单单是看功能,还要看人家的代码书写风格,养成良好的编程习惯。如果能把单片机的硬件资源全部测试完了,基本上算是入门了。千万不要把别人代码编译烧录测试,但我们可以先读懂,然后按照他的功能要求,自己写一个程序测试,总比不动脑子要好。或者搞清楚别人写的好处在哪里,哪些地方是值得我们将来学习和借鉴的,以便用在将来的设计中。

最后就是找个项目提升自己。由于刚上路,胆子小,怕做不好,这种不自信的心理都是正常的。人生总是有很多第一次,过了这一关,就可以升级自己了。通常大公司不会给你这个机会,估计你得跳槽了,通常来说,小公司的机会较多。通常干两三个项目,基本上可以算是单片机工程师了。

找熟悉的单片机入门,先体验编程。不要一上来就搞系统,先学好裸机。因为问题会让你的热情消失殆尽,除非你有坚强的意志力,从简单入手,培养兴趣。让CPU带上系统,一般都需要走很长一段路。一是没人带,二是自己问题,三是老师不中。学习知识,有引路人会事半功倍。当然,仅满足于裸机的人,技术上很难走远。我们的目标就是走嵌入式之路。总之,能坚持下来的,都是精英。这期间会遇到各种困难,特别是在没人帮你的时候,你会更加孤独。兴趣是第一老师,你的热情不会因此而减退,狂热的追求,任何困难都无法阻止你前进的步伐。

最后祝大家准备过苦行僧的日子吧,让孤独永远伴随着你,你和单片机结婚吧。

你可能感兴趣的:(产品研发,单片机,嵌入式硬件,经验分享,自学习,编程)