谁能教教我怎么学单片机,怎么入门?

大鱼机器人 2025-01-14 12:01

文章较长,建议先收藏后再慢慢品尝,肯定会有收货的!

0. 写在最前 

嵌入式学习路径是一个漫长而又有趣的过程,有趣是随着知识的积累感受的成就感,漫长是相对于 软件来说,入门还是有一定门槛的。 

但一定不要一个人学习,因为上述学习路径长,难度渐渐加深,一个人总有不理解,晦涩难懂的地 方,你需要有人来探讨。注意是探讨,不是一味的请教别人,遇到问题自己先通过网络查询资料, 先学习和思考,再请教他人。因此强烈建议现实生活中找一两个同样方向的人一起学习,在学校就 比较方便了,加个单片机社团就有学习氛围了。 

不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 

不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 

不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 

大部分人的主要疑问:哪里可以找到一伙人?

学生党:问问学校电气, 机电学院里面有没有类似的工作室. 可以利用实验室资源最大化学习。 

工程师:通过自己买开发板或者打样。交流的途径有:各类技术论坛,stm32这块,可以去正点原 子论坛, 野火论坛,也有对应微信公众号,可以找找有没有衍生出的微信群或者QQ群。

linux这块, 100ask论坛,ZLG开发交流群. 各种交流群, 论坛, 只要用心去找, 一定能找到。 

1. 基础课程 


1.1 C语言 


具体细节的知识点我这里就不详细的展开描述了,毕竟C语言的书和视频教程网上一大堆,学习资 源充分。但这里建议,C语言的基础还是要打扎实的,最简单的方法就是高中对付高考的方法:题海战术。

其实就是将C语言书籍后面的C习题,每一题的做一遍,自己动手敲一遍,想一遍,调试一遍。这样 将会极大的锻炼到你的基础编码能力。觉得C语言课本后面的习题太简单没有难度的,可以转战LeetCode。

1.2 数字电路 

具体的细节说实话我也不记得了,但是最基本你要知道与或非门如何实现组合逻辑;组合逻辑的输 出反馈到输入作为下一次逻辑的输入就构成了时序电路,掌握时序逻辑的分析方法;

另外还需掌握 数据锁存器类的掉电数据不丢失的电路是什么样的原理。掌握这些概念,或许最开始仅仅是一知半 解,没有能将知识串起来,但是等到某一天你的知识体系成熟的时刻,你就豁然开朗了。

(1) 人类文明的进步,探索发现了PN结这种东西具有单向导电性,由此制作做了二极管。(理解PN结 单向导电原理) 

(2) 由于二极管的单向导电性,由此又制作出了与或非门电路。(理解二极管如何构成与或非逻辑门) 人们做出了与或非逻辑后,发现世界上逻辑就是在此基础上复杂化而已。可用通过与或非门实现 加法器,移位器,编码器,译码器等各种想要实现的组合逻辑(掌握通过门电路设计组合逻辑的方法) 

(3) 但现实生活中的逻辑往往不像组合逻辑这么单纯,输入转化为输出就结束了。往往上一次的输出 会影响到下一次处理。时序逻辑的出现就这么引入了,同时也带来了时钟的概念。(掌握组合逻辑 输出反馈为下一个时钟的输入得到时序电路的分析方法) 

(4) 上面这些都是实时输出的,即输入的同时才能得到对应的输出,一旦输入没有,输出也就丢了。数据没有办法保存。于是人们又通过门电路制作出了可以锁存数据的RS触发器,PROM存储器。(掌握存储器的电路原理,如何通过总线时序访问) 

准确理解了上述内容后,在后续学习微机原理的课程中,你会发现CPU的核心单元就是一个复杂点 的时序逻辑,而外设资源的话,都是些组合逻辑或时序逻辑包起来的黑盒子。

2. 入门课程 


2.1 51单片机 


讲道理,目前Proteus仿真软件确实很强大,使用它学习51的书籍,教程,示例十分的多,非常适 合学习。

但我还是建议真心学习的的话,去淘宝上淘个实物开发板和模块,学生党经济能力一般的 就上闲鱼,买个二手板子,包邮不超过50。

为什么建议买实物呢?

因为Proteus仿真毕竟是仿真, 对于很多硬件上的电压、信号时序等要求不像实际电路严谨,或者说不够严苛。就好比i2c时序不是 很符合从机的要求也能正常通信,但同样的程序放到实物单片机上就很有可能i2c通信不上。 

这里再顺带手的介绍下51主要学习些什么?以及简单的学习步骤:

创建工程,学会如何编译,如何下载,理解sbit,sfr等51单片机特有的寄存器数据结构 

假设使用的STC系列的单片,要学会去STC官网(stcmcu.com)下载官网资料,数据手册文档。官方下载工具、电路参考设计等资料。(从芯片厂商官网上获取学习的资源也是一项很重要的能 力),或许51这样的单片机资料太多,基本你想要做的东西,别人早就做过了,官网的资料早就变成千万的人的博客文章,但以后学习一些不是热门的处理器,官网的资料就显得很权威也很重要了。

学习51单片机的IO模块,使用IO点灯(流水灯)、控制数码管、控制8*8点阵模块、按键输入。

学习51单片机的中断模块,先从最简单的外部中断,使用中断的方式识别按键事件。

学习51单片机的定时器模块,实现1s定时,实现简单的数字秒表,实现IO口输出PWM波。

学习51单片机的串口模块,掌握串口电平标准,TTL、RS232、USB电平标准,掌握串口波形组成,掌握波特率,多主机通信等概念。

51基础模块学习完了后,就可以学习扩展模块了。可以使用IO口模拟各种各样的低速总线协议, 如i2c协议、spi协议还有一些特定模块自定义的协议,如DS18B20温度传感器的单总线协议,加深对协议的理解。

学习的过程可以通过买该协议对应的模块进行学习,尽量挑网上教程多的模块 买,如i2c就买eeprom和mpu6050,spi就买flash。

学到这里,就可以做点小东西了,比如说旋转LED,循迹小车,遥控小车。最开始就跟着网上的 教程学习,学习的第一步总是从模仿开始的。先模仿,再理解,再改进,最后吸收转化为自己的能力。

建议上述过程多花点时间,做到绝大部分地方都能搞懂,都能够理解。毕竟是基础,后面的学习是 在其上进行扩展,基础学的好,后面有着触类旁通的功效。

2.2 微机原理(可选)

一般的小伙伴这个时候就会开始上手STM32了,但是我建议在上手STM32之前,先看看8086处理 器的设计,即学习下《微机原理》这门课,我觉得还是很有必要的。

微机原理,可以大概的了解的,CPU如何执行指令,如何通过地址总线、数据总线、控制总线访问内部寄存器,外部存储器, 中断如何被响应,以及中断的具体内部处理过程。

2.3 STM32 

接下来可以安安心心的学习STM32了,这个就比51要复杂了。但是不慌,本质和51是一样的东 西,只是功能模块变复杂了,模块数量变多了。但是万变不离其宗,本质上模块无非就是组合逻辑 或者是时序逻辑电路,而模块寄存器就是该逻辑电路的输入。

我们只要看懂模块框图,将框图中的 配置和相应的寄存器对应上,学习就是一样的。

stm32单片机,推荐购买野火或者正点原子的开发板学习,并非打广告,而是教程确实讲的好。这个跟着视频一个一个模块学习就可以了。或者以作品为导向,做个平衡小车,OLED时钟等小玩意。

2.4 数据结构 & RTOS 

裸机程序做完了就可以学学rtos小型的嵌入式操作系统了,野火和正点原子都有出书籍和视频教程的。

学习RTOS之前,有需要的同学可以自行考虑下要不要学一下数据结构,不一定要学的很深, 最起码队列和栈结构要了解,最好的话自己用c实现一遍。

2.5 PCB 绘制 & DIY 小作品 

单片机这种简单的小板子推荐使用国产的 LCEDA。Altium Designer 更专业,但是是收费软件, 替代方案为 KiCAD。

STM32 功能模块比较多,如果全部都学的话自然是最好的,但是怕单单是学习慢慢的会觉得无趣 (看视频教程、分析源码、自己实现一遍、接着开始下一个知识点也是上述三个步骤),久了怕人会坚持不下来,渐渐的消磨了学习的激情。

因此,学习STM32我建议以项目为导向,当然一些基本的 GPIO、中断、i2c、LCD、Touch、ADC、TIMER等外设还是要先熟悉的。

STM32可以做的东西就 多了。大家可以在知乎上或者在各大电子论坛上搜索下有意思的电子小东西,挑自己感兴趣的做。

比如说我比较感兴趣的有:

1. 可调电子表 

2. 自平衡小车 

3. 四旋翼飞行器 

4. 旋转LED 

5. 红外遥控 复制器 

6. 自制STM32仿真器 

7. NES游戏机 等等等。 

既然以作品为导向,那自然也就需要自己打板了。

打板子的,最近嘉立创在搞活动,真的好便宜呀,5元5片,全国包邮。打板的话,需要学习下 Altium Designer 软件,从此开始制作属于自己的小玩意。

AD的资料网上也很多。我是看的郭天祥的AD6.9视频入门的。目前国产的立创 EDA 出了专业版,画画简单的电路板还是没有什么问题的。

DIY 的话,Arduino 也可以考虑,有 C 基础就可以轻松上手。

3. 提高课程(Linux) 

单片机学的差不多,就可以开始嵌入式 Linux 学习了,仔细细分的话可以细分为嵌入式 Liunx 驱动 开发和嵌入式 Linux 应用开发。 

3.1 Ubuntu 入门 

安装Ubuntu,学习Linux基础使用,我是看慕课网的Linux达人养成计划系列视频入门的,重点学 习下以下内容:

Linux 基本操作,常用命令 

Linux C 编程,能够使用 gcc 进行编译 

Makefile,推荐陈浩 《跟我一起写 Makefile》 

Shell 脚本 

感兴趣入门下Python脚本 

3.2 Linux 驱动

主要的学习内容有:

裸机驱动,就理解为单片机就好了,性质是一样的,只不过这里不像 51 和 STM32 使用 IDE 进 行编译和链接,而是自己使用交叉编译工具配合 Makefile 手动的编译链接。 

uboot 入门,学习通用的引导流程,熟悉 uboot cmd,bootcmd,环境变量,flash 烧写等。 

kernel 驱动,这里的 kernel 驱动和裸机驱动还是很大区别的,单片机驱动相对来说说仅仅只是 看懂 SOC 手册,配置寄存器,但是内核驱动往往为了兼容大量的 SOC 主控,大量的外设厂商, 存在一层软件抽象。

在内核中,我们称之为子系统。子系统有很多内容,选自己工作相关的仔细 研究即可,切勿贪多嚼不烂。

3.3 Linux 驱动移植 

rootfs 制作,基于 busybox 制作内核文件系统。 

uboot 移植,kernel 移植。 

4. 提高课程(软件) 

有了一定的嵌入式基础后,后面在实际工作中,你会发现,很多硬件强相关的驱动代码都是由物料 供应商提供。

举个例子,我之前在上海做手机开发,高通 SOC 方案驱动子系统非常的完整,有高 通的一套标准在里面,而对应的手机物料供应商,比如LCD(屏幕)、TP(触摸)、Sensor(摄像头)、指 纹、各类传感器,在出售物料的同时,会根据你的 SOC 主控方案直接提供可用的驱动程序(按照高 通规则都匹配好了,MTK也是一样),很多硬件驱动代码,供应商全部帮你做好了。我们更多的是开 发业务代码。 

4.1 数据结构 

基本的队列、链表、环形缓冲区这些是基本功了,建议自己实现一遍。不要忘了我之前提到的,自 己曾今写过的代码就是最好的笔记。gitee 和 github 记得保留起来。这些代码会经常使用到,在不 断的使用中,慢慢的修复缺陷,完善代码的鲁棒性。 

4.2 设计模式 

推荐 《Head First》,我看的是 Java 语言的版本。可以初步学习下 Java 语法再看。代码设计思想 不受语言限制的,好书值得一看。

5. 积累与思考 

5.1 知识体系库

慢慢的,当我进入一个细分的领域,音视频开发领域,就会发现,很多时候,不仅仅是熟练通用开发能力,即我上面提到的驱动开发、软件业务开发这些技能。

很多业务依赖于你要懂专业知识可能得心应手,不然连代码中的数据结构为什么要如此设计都搞不明白。因此但进入专业领域,可以尝试慢慢的将平时积累的知识组织起来,慢慢的积累,最开始可能自己 也是一知半解,博客抄一抄,官方协议文档翻译翻译。

但是知识就是这样的,最开始没有成体系之 前,一知半解很正常,一旦到了一定的量,熟悉后,一旦知识串起来后,那种的融汇贯通的感觉是 极其美妙的。因此,建议平时学习的过程中,养成做笔记的好习惯。

想要深入研究那一方面后,可以不断的积累 学习,进行系统的整理,慢慢的等待融会贯通的那一日到来就可。

我目前使用的语雀知识库,私人服务器搭建的是 showdoc 文档库。

5.2 文档规范 & 代码模块化(组件化) 

不难发现,很多开源软件都配有详细的文档,从最简单的介绍这个软件是什么,有什么用,该怎么用,到注意事项,都写得一清二楚。甚至有的开源软件还会介绍内部的实现细节。

复用的话,毕竟好记性不如烂笔头,代码核心思想,一个月两个月还能记得,时间久点别说核心思 想了,可能连使用都不太记得怎么用了。这个时候就意识到了,代码配套文档介绍的重要性。

毕竟 在代码刚开发完成的时候,趁着思路清晰的时候,把文档写掉,注意事项记录的清清楚楚,明明白白后,后面复用将会方便很多。

作者:王小彬同学
链接:https://www.zhihu.com/question/311334042/answer/675601974

大鱼机器人 一个专注于机器人技术,单片机,嵌入式系统,智能家居,智能设备,PCB设计,IT最新动态的自媒体。此外,还有海量学习资源等你来领取。作者:张巧龙,个人微信号:well_xiaolong。欢迎关注公众号,名称:大鱼机器人,公众号ID:All_best_xiaolong
评论
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 463浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 419浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 88浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 317浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 65浏览
  • 说到福特,就要从亨利·福特(Henry Ford)这个人物说起。在发明大王爱迪生的电气工厂担任工程师的福特下班后,总是在自家仓库里努力研究和开发汽车。1896年,福特终于成功制造出一辆三轮车,开启了福特汽车的传奇。最初几年,福特都是独自制造汽车并同时进行销售。 (今天很多人都知道的精益管理中的5S方法,或多或少地受到了福特 CANDO方法的影响。)1903年,福特从牧师、律师、银行家、会计师等十一位股东那里筹集了十万美元,并在自家庭院成立了美国第五百零三家汽车公司——福特汽车公司(Fo
    优思学院 2025-01-10 11:21 49浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 419浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 149浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 437浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 438浏览
  • LVGL(Light and Versatile Graphics Library)是一个免费的开源图形库,旨在为各种微控制器(MCU)和微处理器(MPU)创建美观的用户界面(UI)。LVGL可以在占用很少资源的前提下,实现丝滑的动画效果和平滑滚动的高级图形,具有轻量化、跨平台可用性、易于移植、操作友好以及免费使用等诸多优势。近期,飞凌嵌入式为OK3506J-S开发板移植了最新9.2版本的LVGL,支持多种屏幕构件以及鼠标、键盘、触摸等多种输入方式, 能够带来更加友好的操作界面;同时,启动速度也
    飞凌嵌入式 2025-01-10 10:57 39浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 446浏览
  • Snyk 是一家为开发人员提供安全平台的公司,致力于协助他们构建安全的应用程序,并为安全团队提供应对数字世界挑战的工具。以下为 Snyk 如何通过 CircleCI 实现其“交付”使命的案例分析。一、Snyk 的挑战随着客户对安全工具需求的不断增长,Snyk 的开发团队面临多重挑战:加速交付的需求:Snyk 的核心目标是为开发者提供更快、更可靠的安全解决方案,但他们的现有 CI/CD 工具(TravisCI)运行缓慢,无法满足快速开发和部署的要求。扩展能力不足:随着团队规模和代码库的不断扩大,S
    艾体宝IT 2025-01-10 15:52 158浏览
  • 电动汽车(EV)正在改变交通运输,为传统内燃机提供更清洁、更高效的替代方案。这种转变的核心是电力电子和能源管理方面的创新,而光耦合器在其中发挥着关键作用。这些不起眼的组件可实现可靠的通信、增强安全性并优化电动汽车系统的性能,使其成为正在进行的革命中不可或缺的一部分。光耦合器,也称为光隔离器,是一种使用光传输电信号的设备。通过隔离高压和低压电路,光耦合器可确保安全性、减少干扰并保持信号完整性。这些特性对于电动汽车至关重要,因为精确控制和安全性至关重要。 光耦合器在电动汽车中的作用1.电池
    腾恩科技-彭工 2025-01-10 16:14 69浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 421浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦