小白必看!入门嵌入式你需要了解这些!

小白必看!入门嵌入式你需要了解这些!(一)

​ 在信息发达的时代教学文档和视频在网络上遍地开花,因此没有必要重复造轮子,此文档的作用为:提供一个学习方法、例举出一些有学习意义的学习视频和文档,供0基础的你参考和学习。此处的学习可能有助于提升对于嵌入式整体的兴趣和概念的了解。

在例举学习的视频和文档之前我希望你能了解:

​ 自学能力是步入任何一个行业首先需要培养的一种能力。学习一个东西必须的成本是时间,如何花少量的时间学习更多的内容一直是许多人的追求,其实很多人的学习方式有很大问题------时间浪费。浪费与否的评判取决于学习的目的,如果目的是快速实现某一个功能,那其实学习成本远远低于完全弄懂一个功能的时间。原因就在于快速实现某功能并不需要了解底层原理,而往往底层原理是最难啃的部分,适当的舍弃这一部分可以极大的提升我们的学习速度。

​ 学习一门全新的未知领域的学科时切忌不要一开始就找来一本书或一个教学视频从头到尾就开始看,这是错误的,也是危险的!一个推荐的学习方式是先了解整个领域是具体干什么的?先从大纲开始,即整个领域包含哪些部分?各部分之间的作用是什么?如何使用这些部分?稍作了解有一些概念即可。先是粗线条的学习,全部过一遍,知道怎么用就行了,不用详细了解底层的计算原理、数学公式、逻辑运算等复杂的内容。后面基本的框架有了一定的认识了以后再进行更加详细的学习。

​ 然后,开始学习每个部分的具体内容,此处仍然采用"稍作了解"战术,即知道概念、基本原理和如何使用即可。比如我知道计算器可以用来做运算,我现在在学习加法运算,我只是使用它进行我的加法运算,知道按下按键'1' '+' '1'和'='就行了,不需要了解它内部的芯片逻辑如何运作,更不需要了解它内部的电子是如何运动的。这样有助于提高我们的学习速度和对学习领域的框架的快速搭建(万物皆可速通 bushi),好比高屋建瓴,有了框架的支撑再去慢慢的填空即可!

​ 自学能力还有一部分为自主探索能力,要能够通过一个点的探索发展成为一个面的探索,比如学习stm32你不能说你只知道stm32不知道其他的单片机,你不能只知道单片机而不知到嵌入式,你不能只知道嵌入式而不知道其内部还包含着哪些部分。自主探索尤为重要!!这也是后期支撑兴趣的动力之源,自己不断发现新的有意思的东西不断的学习和更新!更高,更强!

一些概念的介绍举例

​ 对于单片机是什么 ?一个肤浅且比较快速的理解方式就是一个性能不那么好但是可以对它进行编程的小型电脑。具体详细的细节可以参考网络上的详细说明。稍作了解有一个概念即可。同理我介绍下面的一些概念:

​ 编程是什么?编程是编辑程序的意思,用计算机语言的方式进行编程,简称写代码(一下子就不高级了hhh)。

​ 程序,是由逻辑代码组成的。

​ 计算机语言是什么?计算机语言就是计算机能够理解的说话方式,用计算机语言书写逻辑的过程叫做写代码,有需要使用到一些方便的具有多种功能的文本编辑器,常见的几种计算机语言为C语言、C++、python、java等等我们操纵单片机使用的最多的是C语言,请自行搜索c语言学习内容。这些语言仍然不是计算机能够直接理解的,它们需要通过一些方式转化为更为底层的电平变化来理解。

​ 电平是什么?电平可以肤浅的理解为电压的高低,电压高低只有两种方式,高和低。我们规定高代表1低代表0,一共只有两种,这也是计算机为什么是2进制的一个原因。

​ 二进制是什么,类比一下十进制满十进一,二进制则是满二进一。

平时对stm32进行编程时,往往需要借助一些软件和硬件来辅助我们完成编程,比如编程时需要使用一个叫stlink的硬件将电脑与stm32进行连接以便于后续逻辑代码的写入,该硬件需要安装驱动。我们需要使用一个名叫keil5的软件来进行程序的编写,该软件需要安装对应芯片的c语言包,编程使用的语言为c语言。这个软件需要进行一些配置,如果我们的代码逻辑书写完毕,需要对代码进行编译(修改成单片机看的懂的二进制文件.hex),并且进行烧录。烧录即抹去单片机上现有的程序并把刚刚编译好的二进制文件传到单片机里。它下一次上电时就会自动运行你写的逻辑。

​ 这里引出2.0版本的学习方法------"不完全追问法",上面的概念介绍就是一个例子你会发现我的概念介绍是一层套一层的,下面一层都是源自与对上面一层的不理解,但是解释到非常细节的地方时能要求进行概括即可。即"不完全追问",就像武林高手过招,咱点到为止。

​ stm32的c语言库主要分三种,一种为库函数,一种为hal库,一种为寄存器。其各自的优势可以网上按照前面的方法自行了解,实验室所采用的是库函数版本,我下面推荐的两个视频为hal库版本。建议先看完正点原子的库函数对于配置有了一些基本的认识之后再进行hal库的学习。

推荐学习资料

stm32f407探索者开发板V3 --- 正点原子资料下载中心 1.0.0 文档

上面这个建议下载资料盘看文档(资料的软件里面有keil5),文档看不懂再看视频。(tips:单位时间内能接收到信息的效率而言,文档远高于视频)

https://www.bilibili.com/video/BV1th411z7sn/?spm_id_from=333.337.search-card.all.click

上面是江科大的stm32学习

推荐up主:

keysking的个人空间-keysking个人主页-哔哩哔哩视频 (bilibili.com)

拓展学习

如果你对电脑系统感兴趣也可以提前了解linux操作系统,我们主要采用ubuntu。如果你对机器人操作系统感兴趣也可以学习ros或ros2.

最后感谢您的阅读!

相关推荐
憧憬一下2 天前
PCIe_Host驱动分析_地址映射
arm开发·嵌入式硬件·嵌入式·linux驱动开发·pci/pcie
aspirestro三水哥6 天前
Linux: 通过/proc/pid/stack查看程序卡在内核的什么地方
linux·运维·服务器·嵌入式
@启智森7 天前
【C语言】浮点数的原理、整型如何转换成浮点数
c语言·开发语言·嵌入式·float·int·浮点数
@启智森8 天前
【Uboot】Uboot启动流程分析
linux·c++·嵌入式·uboot·启动·底层
不想写代码的我8 天前
基于ZYNQ-7000系列的FPGA学习笔记11——IP核之单端RAM读写
笔记·学习·fpga开发·嵌入式·zynq
7yewh8 天前
嵌入式 linux Git常用命令 抽补丁 打补丁
linux·arm开发·git·嵌入式硬件·ubuntu·嵌入式·嵌入式软件
Jason_zhao_MR9 天前
基于米尔全志T527开发板的OpenCV进行手势识别方案
人工智能·mcu·opencv·计算机视觉·嵌入式
昊虹AI笔记9 天前
Source Insight的使用经验汇总
嵌入式
7yewh9 天前
LeetCode 力扣 热题 100道(十九)最长连续序列(C++)
c语言·数据结构·c++·算法·leetcode·嵌入式
憧憬一下10 天前
PCIe的三种路由方式
arm开发·嵌入式硬件·嵌入式·linux驱动开发·pci/pcie