大家好,我是无际单片机编程的徐工,今天闲暇,抽点时间和大家聊聊关于嵌入式开发的学习。

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

一晃好多年过去了,梦想还是梦想,人生也去了一半,再过几年就四十岁了,科学家这辈子是没有希望了。

因为爱好电子,对电子产品有极大的兴趣,在大学的时候就学了单片机,毕业之后一直从事着单片机相关的工作,说起来也算是圆了自己儿时一点小梦想。

嵌入式开发是什么呢?嵌入式开发就是开发智能电子产品的,专业的名词叫“可编程设计”,主要针对的就是电子产品的软硬设计。

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

其中智能手机,平板,等一些智能程度比较高的电子产品,是基于ARM + Linux/Android开发的。

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

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

基于ARM开发的电子产品相对比较复杂,一般需要几十上百的研发团队相互配合才能完成,靠一两个人的努力很难实现。

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

其次,我们再看一下基于单片机的嵌入式开发

基于单片机的电子产品的开发相对ARM + Linux/Android就要简单很多,而且应用也是非常的广泛,我们周边无处不在。

类似的单片机嵌入式开发的公司很多,小的企业只有一两个工程师,大的有几十个。

接下来,我们在聊一下“嵌入式开发难吗?”

关于ARM+ Linux/Android的学习,之前尝试的学习过,有些产品开发中也有涉及。

个人感觉如果你是零基础直接去学习的话难度还是挺大的,如果你从事了几年单片机开发,再进阶相对就简单很多,也比直接学基础要扎实得多。

这么多年我一直从事单片机类电子产品开发,用到的单片机的型号也比较多:C51,STM32,PIC,AT,AVR,华大,灵动,合泰等品牌。

单片机开发学习相对比较容易,如果是零基础开始学习,大概需要2-5个月就可以达到独立做项目水平。

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

  1. 单片机开发C语言基础

单片机程序开发的基础是C语言,汇编目前应用的已经非常少了,所以不建议大家入门阶段从汇编开始学习。

单片机C语言和上位机C语言,在实战开发中还是有点区别,上位机是基于电脑平台开发的,硬件资源非常丰富,而单片机的单片机资源相对比较匮乏,包括ROM和RAM的空间要小很多。

所以新手学习最好学习单片机c语言编程,这块的教程可以看无际单片机编程的。

当然C语言是通用的,知识在实际开发应用上细节上有点小区别。

2.掌握一定的硬件基础

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

目前很多电路集成化程度很高了,很多应用我们只要寻找现成的芯片方案即可,而且也有代理商或原厂的技术支持。

所以对单片机开发工程师来说,对硬件基础要求也是越来越低

零基础如何入门学习嵌入式单片机程序开发?

第一步: 学习C语言基础(大概需要1-2周)

单片机C语言需要学习掌握哪些知识点:

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

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

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

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

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

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

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

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

在开发板上学习单片机,就仅仅只能学会单片机而已。

单片片机每个外设学会以后,你会发现想做项目依然无从下手。

其实不管你学什么东西,都是这样的,就像刚学会写字肯定也不会写作文,刚学会英语单词还不会怎么写英语文章。

我的经验就是直接项目去学习是最快的,这也是为什么无际单片机编程要以实战项目让学员学习单片机开发的原因。

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

刚开始入门的时候,大家要选择一些比较简单的项目去实战,就是电子时钟,交通红绿灯控制等。

有了一些简单的项目实战之后,再选择一些自己比较感兴趣的,较复杂的产品去积累经验。

最后,其实自学完全也是可以的,只是时间会比较长,有条件的话还是找个人带最快,别忘记时间也很宝贵!

嵌入式开发难吗?嵌入式多久可以学会?相关推荐

  1. 零基础学习嵌入式开发难吗?嵌入式开发需要学习什么

    对于零基础刚开始学习嵌入式的同学很多都会有这样的一个想法,嵌入式开发需要学习什么?如果是电子或计算机专业的人,相对来说,会比较容易入门;而非电子或计算机专业的人,应该先从基本的电路和C语言编程开始学. ...

  2. 嵌入式开发难学吗?给初学者的一些建议

    嵌入式开发行业对于初学者们来说是一个比较复杂的综合体,为什么说是综合体?主要就是因为嵌入式开发是软件加硬件的结合,开发工程师要会硬件也要会软件.很多初学者在学习的时候容易走进一些误区,这个时候就会对自 ...

  3. 视频教程-物联网嵌入式开发之STM32 和 RT-thread-物联网技术

    物联网嵌入式开发之STM32 和 RT-thread 我叫连志安,现任职广东长虹技术研究所(国企).之前在康佳集团(国企).CVTE(上市公司)等公司任职.负责过Android TV.智能网关.路由器 ...

  4. python好学吗一般要学多久-转行学Python开发难吗,月薪过万需要多久

    原标题:转行学Python开发难吗,月薪过万需要多久 我们知道,你最担心学习后能不能顺利就业,薪资能不能达到预期,付出和收获能否成正比.对于Python的招聘岗位和薪资我们曾经分析过很多.那么在达内学 ...

  5. 嵌入式linux基本指令,成都嵌入式开发之Linux常用命令大全

    原标题:成都嵌入式开发之Linux常用命令大全 Linux系统中有很多命令,使用Linux系统最常用的就是命令操作,而不是像Windows一样,使用鼠标操作.Linux中许多常用命令是必须掌握的,也有 ...

  6. 嵌入式开发之NorFlash 和NandFlash

    嵌入式开发之NorFlash 和NandFlash 转自:http://blog.csdn.net/tigerjb/article/details/9322035 [摘要]:作为一个嵌入式工程师,要对 ...

  7. 嵌入式开发之zynqMp ---Zynq UltraScale+ MPSoC 图像编码板zcu102

    嵌入式开发之zynqMp -Zynq UltraScale+ MPSoC 图像编码板zcu102 1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScal ...

  8. 嵌入式学习培训要学多久?嵌入式学习哪些内容?

    嵌入式越来越复杂,一个SOC芯片上集成的模块越来越多.以手机为例,典型的嵌入式产品,我们看看上面集成了多少模块:触摸屏.LCD.USB.WiFi.4G等无线通信.音视频编解码IP.DDR.存储控制器. ...

  9. 嵌入式开发之Qt-5.9.6应用程序开发环境搭建

    参考文档 嵌入式开发之Qt-5.9.6交叉编译(带WebEngine) Qt-5.9.6 linux安装包官方下载地址 Qt-5.9.6 linux安装包百度云下载地址 开发环境介绍 主机操作系统:U ...

最新文章

  1. 英文版windows乱码问题(win7/8/10)
  2. SQL Server查询某个字段存在哪些表中
  3. 【bzoj 2002】弹飞绵羊
  4. 【MCtalk讨论】 短视频平台出路在何方?
  5. 解决国内NPM安装依赖速度慢问题
  6. 聚焦北京,探秘多媒体开发新趋势(内附资料下载)
  7. 虚拟ip工具_针对游戏防封换IP有用吗?
  8. instanceof_您真的需要instanceof吗?
  9. android 画圆教程,android shap画圆(空心圆、实心圆)
  10. CSS的三种定位,月薪30K
  11. 要求做一个从网页上导入excel
  12. 无序链表Python实现
  13. eltable 无数据文案修改_el-table的二次封装详细版(一)
  14. python3.5安装包_Python 3.5.4详细图文安装教程(附安装包) | 我爱分享网
  15. pcs7 v8.1服务器系统,PCS7 V8.1 SP1 AS PO授权 和OS PO授权和ES PO授权 具体 步骤 越详细越好...
  16. asp.net922-基于Web的房屋中介管理信息系统
  17. java实现多媒体播放器_JAVA播放器设计
  18. 曙光服务器I620-G10安装windows server 2012 教程,附raid卡驱动
  19. 模块手机Project Ara的MDK(Module Developers Kit)模块开发套件
  20. 学习笔记(2):Java面试:核心考点突击大串讲-Redis的持久化机制

热门文章

  1. 计算机技术应用基础2010,计算机应用基础(Windows7+Office2010双色版中等职业教育课程改革国家规划新教材)...
  2. 选择合适的java脚本语言
  3. 浅谈web cache的简单原理
  4. 逻辑门电路的延时分析
  5. R语言对豆瓣电影top250进行分析
  6. java script error_JavasScript 简单错误总结 错误调试
  7. 应用随机过程笔记(一):随机过程的定义
  8. NX二次开发-BlockUI选择对象控件设置程序组过滤
  9. IEC 61000系列标准及其对应国标
  10. (Java高级教程)第四章必备前端基础知识-第二节1:CSS概述和选择器