【学习心得】我的单片机学习之路

“ 看到很多朋友在后台提问:“怎么才能入门汽车电子呢?”其实汽车电子的入门并不难,但如果你没有学习过单片机的话,那么你需要付出更多努力💪”

如果你是电子或者计算机专业的,那大学课程里应该已经涵盖了这项。但我发现后台粉丝和我一样,对单片机没有系统性的学习过,就参加(或即将参加)工作,那么这篇文章非常适合您!

什么是单片机?

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能,在工业控制领域广泛应用。

为什么要学习单片机 ?

首先单片机出现在我们身边的任何角落,大到登陆火星“毅力号”火星车,小到随处可见的共享单车,只要需要控制的地方 ,就离不开单片机,更不用说汽车了。现在一辆汽车上的单片机数目超过了上百个(行车电脑),对于从事汽车电子行业的小伙伴来说,可以说是必须要点亮的知识树!

我是如何学习的 ?

由于我本身的专业是能源动力相关的,之前都不知道单片机是啥,可以说单片机完全是我在研究生期间自学的。同时我也发现身边一些同事,之前也没有接触过这方面的知识。如果你和我的情况相类似,相信你看完此篇文章后一定会有所收获。本文主要包含了如下几个方面:

【学习心得】我的单片机学习之路:原文配图 1

基础知识

C语言

C语言是单片机学习的基础,如果连C都不懂的话,就不要玩单片机了。关于C语言的学习,推荐这本书《C Primer Plus》。这本书可以被认为是最好的初学读本(没有之一),包括在工作中,我也有一本常备身边。当然你也可以在学习单片机的同时边雕琢的你C语言技巧。

对于编程语言方面的学习,没有什么捷径,就是多看,多写,多实践。关于编程语言方面,我之间写过一篇关于入门 python 的文章,如果大家感兴趣 ,我可以再写一篇关于C语言的学习。

【学习心得】我的单片机学习之路:原文配图 3

模拟电路 数字电路

玩单片机,免不了和电子元器件打交道,了解数电和模电相关知识也是必不可少的。关于数电和模电的书籍,这个就太多了,各类教材其实大差不差。我个人用的是以下两本(只是因为颜值高)。

【学习心得】我的单片机学习之路:原文配图 4

单片机原理

现在大部分的《单片机原理》一书都是基于51单片机来编写的,主要是对单片机的系统架构,类型以及核心资源与功能方面的讲解。具体包括了以下内容:

  • 什么是单片机 ?
  • 它有哪些部分组成 ?
  • 它是如何进行工作的 ?
  • 单片机核心功能有哪些 ?
【学习心得】我的单片机学习之路:原文配图 6

重点学习

不同的单片机,就算种类有所不同,但核心功能其实都差不多,都是由以下几个关键的部分组成的,可以说掌握了以下知识点,即使来一个新的芯片,你也能迅速的上手。

GPIO

【学习心得】我的单片机学习之路:原文配图 8

GPIO(General-purpose input/output),通用型输入输出,通过配置可以让IO口发挥出不同的功能。ADC(Analog to Digital converter ),模数转换器DIO(Digital in and out),输入输出电路PWM(Pulse width modulation),脉冲宽度调制ICU(Input Capture Unit),输入捕捉单元

通讯

通讯是芯片之间的沟通语言,而不同芯片有着不同的语言需求。而以下三种是必须要掌握的:UART(Universal Asynchronous Receiver Transmitter),通用异步收发传输器,也称为串口通信SPI(Serial Peripheral Interface),串行外设接口I2C(Inter-Integrated Circuit),I2C总线

中断与定时器

中断(Interrupt),即单片机在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序。

【学习心得】我的单片机学习之路:原文配图 10

定时器(Timer),顾名思义是用于测量时间或生成准确的时间延迟。同时单片机还可以通过运行循环来生成/测量所需的时间延迟,但是定时器的出现使MCU从该冗余和重复的任务中解放出来,从而可以为其他任务分配最大的处理时间。

【学习心得】我的单片机学习之路:原文配图 11

调试

单片机是由软件 + 硬件组成的,所以这部分调试包含这两方面的调试。软件调试的方法和大多数编程语言相通,也就是通过打打断点,print这种辅助方法。而硬件调试就离不开万用表,示波器这样的工具了。现在已经有例如Proteus这样的软件可以支持仿真调试,大大方便了我们。

入门型号

无论学习什么,实际操作都是必不可少的。而对于单片机这样和硬件强相关的更是如此。一块开发版,杜邦线,电阻,电容,电烙铁,万用表等等都必不可少。那我应该如何选择自己的第一块开发版呢?先说结论:无基础小白,后续想从事嵌入式相关的开发工作的朋友,我建议您先从C51开始学起然后再入手STM32。代码能力出色的朋友,可以直接上手STM32。想快速的实现自己的创意项目,使用Arduino。关于以上三种单片机的学习难度为:Arduino < C51 < STM32。

【学习心得】我的单片机学习之路:原文配图 14

压箱底的宝贝~

C51

51,yyds

【学习心得】我的单片机学习之路:原文配图 15

C51是一款应用最广的入门级单片机,无论单片机的升级换代多么迅速,51就是永远的神,最适合新手级玩家了。如果你之前从来没有接触过单片机,那么51是您的最好选择。请不要小瞧这个8位单片机,麻雀虽小但五脏俱全,搞个蓝牙或者非比赛级的寻迹小车那是绰绰有余了。

【学习心得】我的单片机学习之路:原文配图 16

自己随便搞的小玩意关于C51单片机的学习,你可以购买开发板,也可以看这本书《单片机C语言程序设计实训100例—基于8051+Proteus仿真》。

【学习心得】我的单片机学习之路:原文配图 17

Arduino

初学者福音/快速原型

【学习心得】我的单片机学习之路:原文配图 18

Arduino UNO Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。快速原型是它最大的优势!它把控制器的底层函数又进行了一层封装,开发周期短,开发难度低,对初学者的游戏体验感极佳,可以说如果你想即刻体验完成项目的快感,又不关心背后的深层原理的话,那么Arduino是您最好的选择。

Stm32

进阶优选

【学习心得】我的单片机学习之路:原文配图 19

STM32F103ZET6开发板STM32是由STMicroelectronic公司开发的32位单片机,相比于8位的51芯片来说,它的主芯片性能和资源都得到了显著的加强。与51直接操作寄存器不同的是它采用结构体库函数的方式来进行相关的资源操作。同时stm32在业内有着广泛的运用基础以及学习资源,是进阶之路上的不二之选!

进阶操作

芯片手册

芯片手册的阅读是从小白到大神转变的进阶之路,一般的外设芯片少说几十上百页,而主芯片的datasheet往往上千页。当你遇到一个新的芯片的时候,先去找找它的datasheet绝对让你少走很多冤枉路。

RTOS

RTOS 实时操作系统(Real-Time Operating System)的学习是入门后的第一难点。实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果的系统。目前学习的主流RTOS为以下两种:

  • FreeRTOS,免费,精巧,市场占有率高
  • Ucos ii,商业付费,代码规范,可靠性高

以上两种RTOS都有着丰富的学习资料,对新玩家着实比较友好!

【学习心得】我的单片机学习之路:原文配图 22

代码移植

代码移植绝对是进阶的高端操作,移植一个功能,需要你对该功能有着充分的了解,同时还要对被移植的单片机也足够熟悉,具体包括:

该功能需要哪些资源 ?控制器是否具有这些功能 ?配置相关资源并将两者相互关联在一起比如可以参照教程自己尝试移植ucos ii系统,对于汽车控制器熟悉的朋友可以尝试对Vector ccp代码(CCP协议介绍)进行移植。

总 结

单片机是一个实践的学科,涉及软件和硬件的相结合。但和其他学科不同,初次接触的时候往往感到无从下手。但单片机的核心功能就是那么多,正所谓一通百通,越到后期就会对单片机整个系统的理解更加深一步。

在工作中我也越来越有感触,在单片机领域,知识的全面性显得更为重要!软件工程师比拼到最后就是比硬件知识,而硬件工程师亦是如此。从软硬件相结合的角度来思考一个系统功能,将会很快的提升你的整体能力!

【学习心得】我的单片机学习之路:原文配图 25

之前在研究生学习的时期在学校论坛里拷贝了一点资料,希望能对有需要的朋友有所帮助!

下载地址

密码:3i7mmy

← 返回文章列表