嵌入式硬件 入门路线

嵌入式硬件 入门路线

前言

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

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

其他分享

  • 13
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式硬件学习路线图可以根据个人的需求和兴趣来选择。根据引用,对于大学未毕业的同学或者想要学习嵌入式的同学来说,可以先入门学习C语言和嵌入式体系框架,然后深入学习C语言的进阶知识和单片机的入门知识。此外,还可以学习Linux操作系统和VxWorks操作系统的入门知识,以及上位机的入门知识。 对于嵌入式硬件学习路线,引用提到了两类从事嵌入式开发的人,一类是偏硬件专业出身的人,一类是软件专业出身的人。对于偏硬件专业的人,可以学习硬件设计和底层软件开发,包括BootLoader、Board Support Package以及硬件驱动程序等。而对于软件专业出身的人,可以重点学习嵌入式操作系统和应用软件的开发。 所以,总结来说,嵌入式硬件学习路线图可以包括以下内容: 1. 学习C语言和嵌入式体系框架。 2. 深入学习C语言的进阶知识和单片机的入门知识。 3. 学习Linux操作系统和VxWorks操作系统的入门知识。 4. 学习上位机的入门知识。 5. 对于偏硬件专业出身的人,可以学习硬件设计和底层软件开发。 6. 对于软件专业出身的人,可以重点学习嵌入式操作系统和应用软件的开发。 希望以上学习路线对于想要学习嵌入式硬件的同学有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [嵌入式软件学习路线入门)](https://blog.csdn.net/qq_44531547/article/details/128613696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [关于嵌入式系统学习路线图](https://blog.csdn.net/bytxl/article/details/49337807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值