嵌入式开发硬件基础入门指南

发表时间: 2024-06-14 16:06

大家好,我是无极单片机编程的徐工,今天有空,想花点时间和大家聊聊学习嵌入式开发的一些心得。

因为爱迪生发明灯泡的故事,我从小在内心深处就有一个梦想,长大后要成为像爱迪生一样的科学家。

很多年过去了,梦想终究是梦想,人生已过去了大半,再过几年我就四十岁了,这辈子当科学家是没希望了。

因为热爱电子,对电子产品有浓厚的兴趣,所以在大学期间就学习了单片机,毕业之后一直从事单片机相关的工作,可以说圆了我儿时的一个小梦想。

什么是嵌入式开发?嵌入式开发就是智能电子产品的开发,专业术语叫“可编程设计”,主要侧重电子产品的软件和硬件设计。

包括我们身边的很多电子产品,智能手机、电子手表、平板电脑、蓝牙智能音箱、冰箱、洗衣机、空调、遥控风扇、共享单车、智能充电桩、儿童遥控玩具等等。

其中智能手机、平板电脑等相对智能化的电子产品都是基于ARM+Linux/Android开发的。

冰箱、洗衣机、空调、遥控风扇、共享单车、智能充电站、儿童遥控玩具、智能穿戴等功能相对简单的产品都是基于单片机开发的。

我们先简单讨论一下ARM+Linux/Android嵌入式电子产品的开发。

基于ARM开发的电子产品相对复杂,一般需要几十甚至上百个研发团队共同协作才能完成,仅凭一两个人的努力很难实现。

所以ARM开发需要学习的东西相对较多,包括Linux、脚本开发、C语言、C++等等,岗位划分也比较细。

其次我们来看一下基于MCU的嵌入式开发

基于单片机进行电子产品的开发比ARM+Linux/Android简单的很多,而且其应用也非常广泛,在我们身边随处可见。

开发类似MCU嵌入式系统的公司有很多,小公司只有一两个工程师,大公司则有几十个。

接下来我们来谈谈“嵌入式开发难吗?”

关于学习ARM+Linux/Android,我之前也尝试过学习过,并且也参与过一些产品的开发。

个人感觉直接从零开始学还是比较难的,如果已经从事单片机开发几年了,那么进阶起来相对会容易一些,比直接学基础要扎实很多。

本人多年来一直从事单片机电子产品的开发,使用过多种类型的单片机:C51、STM32、PIC、AT、AVR、华大、灵东、和泰等品牌。

学习单片机开发相对比较容易,如果从零开始,大概需要2-5个月的时间才能达到可以独立做项目的水平。

单片机嵌入式程序开发需要学习的基础知识:

微控制器开发的 C 语言基础

单片机程序开发的基础是C语言,汇编语言现在已经很少用了,所以不建议在入门阶段就从汇编语言开始学习。

单片机的C语言和上位机的C语言在实际开发中还是有一点区别的,上位机是基于计算机平台开发的,有非常丰富的硬件资源,而单片机的微控制器资源相对匮乏,包括ROM和RAM空间要小得多。

所以新手最好学习单片机C语言编程,这方面的教程可以参考无极单片机编程。

当然,C语言是通用的,但是在实际开发应用中,细节上还是略有差别。

2.掌握一定的硬件基础

单片机嵌入式程序的开发对硬件知识要求不是很高,只要是理科毕业就可以了,只需要简单了解一下电阻,电容,二极管,三极管的一些用途就可以了。

现在很多电路集成度很高,很多应用我们只需要找到现成的芯片方案,而且还有代理商或者原厂的技术支持。

因此对于MCU开发工程师来说,对硬件的要求越来越低。

如何从零开始学习嵌入式微控制器程序开发?

第一步:学习C语言基础知识(约1-2周)

单片机C语言需要学习哪些知识点?

在单片机学习的入门阶段,掌握以上C语言知识点可以满足单片机学习以及一些简单项目的程序开发的需求。

随着单片机程序开发经验的积累,我们需要进一步学习C语言的一些高级用法,如下图所示:

不建议在入门阶段学习C语言的一些高级语法,包括指针,结构体,枚举等,因为这些知识在入门阶段基本用不到,也会增加我们学习的难度,等到真正需要用到这些知识点的时候,之前学过的东西已经完全忘记了。

第二步:学习并掌握单片机外设驱动:(大概需要2-3周)

关于单片机外设知识的学习,建议大家购买开发板并在开发板上进行练习学习,一边看视频一边敲代码,同时在开发学习板上进行功能测试验证。

类似的学习资料在网上相对比较丰富,我们在选择购买开发板的时候,大部分都有配套的开发教程,包括视频教程,也有相应的PDF文档教程。

学习这部分知识相对比较容易。

第三步:实践项目学习(2-5个月)

如果你在开发板上学习微控制器,那么你就只能学习微控制器。

当学习了单片机的每一个外设之后,你会发现当你想做一个项目的时候,你仍然不知道从哪里开始。

其实不管学什么都是这样,就好比你刚学写字的时候,你肯定写不出一篇文章,你刚学英语单词的时候,你肯定不会写一篇英文文章。

我的经验是直接通过项目来学习是最快的方式,这也是为什么无极单片机编程采用实际项目来让学生学习单片机开发的原因。

学习单片机的最终愿望肯定是能够独立做出一些产品,而这些其实都是通过不断的项目开发来磨练的。

刚开始学习的时候,应该选择一些比较简单的项目来练习,比如电子钟表,交通灯控制等。

在有了一些简单项目的实际经验之后,可以选择一些自己更感兴趣的比较复杂产品来积累经验。

最后,其实自学也是完全可以的,只是时间会比较长,如果条件允许的话,找人指导是最快的,别忘了时间也很宝贵哦!