嵌入式硬件 入门路线

嵌入式硬件 入门路线

文章目录

  • 嵌入式硬件 入门路线
    • 前言
    • C语言
      • 推荐学习方法
      • 推荐资料
    • 51单片机
      • 学习51单片机的收获
      • 推荐学习方法
      • 推荐资料
      • 学习成本
    • stm32单片机
      • 前置知识需求
      • 推荐学习法
      • 推荐资料
      • 学习线路推荐说明
      • 学习成本
    • 其他分享

前言

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

C语言

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

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

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

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

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

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

推荐学习方法

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

推荐资料

  • 千锋教育2022新版C语言程序设计基础入门视频 (入门教程)
  • lnnks 的C语言知识点深入讲解 (可以挑一些看,比如数据在内存中存储,位运算等)
  • [C语言] 指针的详解与应用-理论结合实践,真正理解指针! (江科大的指针教程,讲得很详细)
  • [菜鸟教程] C语言教程 (文字版的教程,适合复习查资料)

51单片机

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

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

学习51单片机的收获

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

推荐学习方法

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

推荐资料

  • 51单片机入门教程-2020版 程序全程纯手打 从零开始入门 (江科大的视频,yyds~)

    • 说明:内容涉及模电等电路知识,如果发现无法理解,可以暂时忽略对应内容。
    • 重点是明白每一行代码设置的寄存器是做什么的,电路可以以后学习电路相关的课程再补回来。
  • 【普中官方】51单片机手把手教学视频(上) (开发板官方教程,适合零基础的,因为它把C语言都教了…)

学习成本

  • 约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+)

其他分享

  • 【从零开始电子DIY】 简单了讲解了做出一个作品所需要的步骤
  • 【嵌入式软件工程师经验分享】 可以挑一些喜欢的看,up主是工作多年,分享的经验很有用

你可能感兴趣的:(嵌入式,嵌入式硬件,c语言,学习)