嵌入式硬件 入门路线

嵌入式硬件 入门路线

前言

我也是一名刚刚学习嵌入式的学生,尽管以前有过几年编程经验,但在这方面还是萌新一只。下面的内容是我亲身经历加经验总结出来的,有不同意见可以发表评论,基本上都会回复。

C语言

C语言作为最底层的高级语言,没有之一。(更底层的机器语言和汇编属于低级语言)

硬件开发大多数写的代码都是C/C++,因此以后如果要走硬件方向的话,C语言是必学的。学完C再学C++能轻松很多,C++是C语言的扩展,最重要的从C语言的面向过程演变为面向对象编程。至于不明白面向过程和面向对象的话,也不需要过于纠结,待学到的时候就能明白了。

学习C语言最大的问题就是缺少一种正反馈,毕竟天天盯着一个黑框框,写着各种计算题的代码,打印&读取字符,完全提不起兴趣。这一对比电脑上其他的软件,丑不拉几还没什么用。有这种想法很正常的。而原因就是因为C语言太过于底层,它相比于有着各种库的Python完全没法比,但也是它足够底层,我们才选择学它的,不是吗?

但是C语言也能很有意思的,比如写一个游戏。(可以自己百度搜索“C语言好玩的代码”)因此你可以以写出某个游戏作为目标,不停的百度来解决你遇到的一个个问题。

C语言学到能自己独立做个贪吃蛇就算过关了,更加深入的研究可以在后期慢慢探讨。

在学习C语言的过程中,不仅仅要学习C语言的语法、计算机相关的基础知识,更要建立一种编程的思维。这种思维中核心的一部分就是拆解问题。例如,你现在需要编写一个贪吃蛇,那你应该怎么写?如蛇的移动是怎么写的?

推荐学习方法

  • 前期在B站上通过看视频教程学习入门
  • 中期做 C 语言经典100例 来判断自己掌握程度,并巩固知识
  • 后期独立开发一个小游戏(关键点:编程思维,因此不建议看网上教你做的文章,先自己动手做,做完对比一下和别人的有什么不同,谁的更好)
    • 这里可能很多人会一开始就卡住了,关键在于拆解问题,按照你自己的思路来,然后就可以一步步进行百度。
    • 可以一步步百度,但不建议一开始就看别人完整的教你怎么做的文章。
    • 就像做数学题一样,你可以翻书看看某条定理是啥,但看了答案再做和做了之后对答案是两种不一样的效果

推荐资料


51单片机

有了C语言的基础就能开始学习硬件了,作为硬件入门的首选建议是51单片机。如果你打算跳过51直接学stm32,那你会吃力很多。
**关于Arduino:**Arduino和51单片机的区别大概就是Python和C语言的区别,一个是专注实现功能、不需要了解底层运作、用别人封装好库,另一个能从底层学起、有清晰的结构。

51单片机的功能实现就是通过代码控制一大堆“开关”(寄存器)实现的。

学习51单片机的收获

  • 更多硬件相关的知识(如寄存器、通信协议等)
  • 继续培养编程思维
  • 更熟练的掌握C语言编程
  • 查手册的能力

推荐学习方法

  • 前期同样是看B站视频进行学习基础
  • 中期可以在B站上搜一下别人用51单片机开发的好玩的东西,然后试试自己能不能做出来,最后对比一下自己写的和别人写的有什么区别,谁的更好。
  • 后期运用自己学到的知识,发挥自己的脑洞,看看能做出那些完成度比较高的东西。(比如运用LED点阵屏做贪吃蛇、俄罗斯方块等)

推荐资料

学习成本

  • 约70块钱(用于购买51单片机开发板,具体淘宝“普中51单片机开发板”)
  • 说明:51单片机的学习周期不会太长,可以考虑学完之后卖二手,或者是从闲鱼等入手二手的

stm32单片机

学习51单片机之后想要进阶就是学stm32的单片机了。因为在实际使用中,与51单片机相比,大多数的项目都是使用stm32。
原因自然便是stm32有着更多片上资源,能实现更懂不仅性能高,且成本较低。

但也是因为有着更多的资源,所以要学的比51多得多。比如GPIO口就有8种模式,更有着更多的中断模式等等。但同时学习stm32在某种方面上来说简单不少,因为stm32的资源太多,寄存器也是32位的,靠配置寄存器实现太过于繁琐,所以大多数都是用库函数配置的,然而即使是使用库函数,也是要明白背后的原理,才能真正学好。

前置知识需求

如果是打算学习stm32,以下知识是必须掌握的。

  • C语言方面:正常程序编写能力,宏定义,带参数宏定义,结构体,指针,枚举,位运算
  • 硬件方面:高低电平,基础电路知识,基础电路图阅读,烧录,串口等

推荐学习法

  • 和51单片机差不多,stm32能实现的东西比51单片机更多,因此更容易发挥你的脑洞

推荐资料

  • STM32入门教程-2022持续更新中 (也是江科大的,但是还没更新完…)

    • 观后感:首推,缺点是目前没更新完,而且更新速度较慢(大概月更)。
  • 【单片机】野火STM32F103教学视频 (很详细)

    • 观后感:讲得很详细,原理也讲得不错,但略微有点唠叨,但如果空闲时间多、不赶时间的话建议看这个
  • 【正点原子】 手把手教你学STM32入门教学视频单片机 (和野火差不多,适合和野火交替看)

    • 观后感:一般般,原理方面讲得不好;有点读ppt的感觉,其实读ppt也没啥问题的,毕竟ppt也是他写的,但是吧,连一些英文缩写都直接读,不解释一下啥意思的就挺让人难受的;简单的内容重复讲,复杂的东西随便讲讲或者跳过;
  • 硬石STM32F103入门开发板视频 (据师兄说定时器部分很详细)

    • 观后感:感觉讲得不怎么好,视频确实很长,而且个人感觉讲得很没条理,都不知道讲的什么地方。
  • STM32寄存器映射讲解 (P5~P7,讲解stm32中,寄存器是如何提供宏定义和结构体对寄存器映射,从而构建固件库的)

    • 观后感:建议看一下

学习线路推荐说明

个人首选江科大,但是构建stm32固件库的那集建议看野火的,更加详细。
江科大讲得是真的好,原理讲得通俗易懂,举例子也很形象,基本上全都是手写代码讲解,虽然都是使用的标准库,没有用讲解寄存器配置,但这年头有多少人还手配寄存器的?
野火的详细是比江科大的详细,但是个人感觉过了,有点唠叨了。
野火还有一点好处就是会把你可能遇到的坑都踩一遍,让你能避坑。

但本人有几年的编程经验,因此感觉略微唠叨,但是江科大算是速成课,缺少一部分基础知识。(他只是把他上课教的内容需要的知识补充了)
其实可以从野火看起,如果你也感觉野火太唠叨,再看江科大的。

我个人是把江科大的刷了一遍,然后看正点的,如果发现听正点讲得不是很明白,就转到野火再听一遍。

学习成本

这个就看个人选择了,要是钱包鼓鼓的就考虑买正点原子的开发板(淘宝:根据配置不同有价格不同,低至300,高的话加上各种配件能700+),要是想要节省一点的话,就考虑买江科大的套件(约200),再省的话,就根据江科大套件清单自己上淘宝选择购买一些(因为比如一些传感器不是很必须的,所以可以选择不买,几十块钱够了)

  • 土豪:选 正点原子/野火等 的开发板(300 ~ 800)

    • 提示:如果打算购买正点的板子,建议配上一个LCD屏幕,因为正点后期教程的例程大多是以LCD屏幕显示数据(如果你会自己修改代码,可以当这个提示不存在)
  • 一般:买江科大的stm32入门套件 (199)

  • 节省:stm32最小开发板+STLINK(调试器)+OLED屏幕+杜邦线+其他外设(50+)

其他分享

  • 8
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个嵌入式系统学习的初学者,我可以为你提供一条完整的学习路线,帮助你逐步掌握嵌入式系统的知识和技能。 1. 学习C/C++编程语言:嵌入式系统常用的编程语言是C/C++,因此你需要先掌握这两门语言。了解基本的语法、数据类型、流程控制等。 2. 学习计算机组成原理:了解计算机的基本组成部分,包括CPU、内存、输入输出等,并了解它们之间的工作原理和相互连接方式。 3. 学习数字电路和模拟电路:嵌入式系统中需要处理数字信号和模拟信号,因此你需要了解数字电路和模拟电路的基本知识,包括逻辑门、时序电路、模拟电路等。 4. 学习嵌入式系统架构:了解常见的嵌入式系统架构,比如单片机(MCU)和嵌入式处理器(如ARM)等。学习它们的特点、资源配置和编程模型等。 5. 学习实时操作系统(RTOS):嵌入式系统通常需要处理实时任务,因此你需要学习实时操作系统的基本概念、任务调度、中断处理等。 6. 学习外设接口和通信协议:了解常见的外设接口,如GPIO、UART、SPI、I2C等,并学习常用的通信协议,如CAN、Ethernet、USB等。 7. 学习嵌入式系统开发工具和调试技术:熟悉常用的嵌入式系统开发工具,如编译器、调试器等,并学会使用调试技术解决嵌入式系统中的问题。 8. 实践项目:通过完成一些小型的嵌入式项目,如LED控制、传感器数据采集、通信接口应用等,来巩固你的知识和技能。 以上是一个基本的学习路线,你可以根据自己的兴趣和需求进一步拓展和深入学习。请记住,嵌入式系统是一个广阔而复杂的领域,需要不断的实践和学习来提升自己的能力。祝你学习愉快!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值