一.什么是单片机?什么是嵌入式?它们之间的区别与联系。
关于这个问题我在网上寻找到了相关文章解释得很详细,不了解的同学可以参考一下这篇文章:到底什么是嵌入式?什么是单片机? - 知乎
更多资料
欢迎加入QQ交流群:867069452
关注VX公众号 : 嵌入式修行者
二.学习路线
一个人学习是孤独的,如果你是一名学生,建议加入学校的电子社团或者实验室,有老师的帮助和同学的互助能更好去提升自己,多与同学组队参加项目比赛,能收获更多的知识经验。
1.C语言! C语言! C语言!
C语言可以说是贯穿整个嵌入式的核心程序语言,想要学好嵌入式,C语言必须学会:
推荐:小甲鱼—带你学C带我飞:
带你学c带你飞【小甲鱼c语言入门教学】_哔哩哔哩_bilibili
郝斌C语言:
初学者可以根据视频边学边敲代码,初学阶段要学会掌握基本的函数,数组,语法关键词if,for,while的使用即可,指针与结构体部分可以在后期再进行补充学习。
2.基础电路与工具的学习
推荐:
模拟电子技术—郑益慧
数字电路—王红
学习嵌入式,避免不了跟硬件打交道,最好能具备一定的模电数电的基础,作为初学者,只需要学会电阻,电容,二极管,三级管,mos管等常用器件的工作原理,及常见基础电路的原理图就可以了,如果你不打算从事硬件开发工作,不需要花太多精力将这两门课完全弄懂,遇到不懂的电路,器件原理直接进行百度,单点突破即可。工具方面要学会示波器,万用表等基本硬件测试工具以及电烙铁焊接技术就可以了。
3.学习单片机
有了C语言基础与电路知识基础后,就可以正式开始学习单片机了,当然,也可以跨越不学单片机直接去学习linux,但学习难度会比较大,有单片机基础再去学习linux能使自己对底层基础知识更了解,同时,学会单片机还能做一些有趣创意的小发明。
学习单片机建议从51单片机开始学起,可能会有人觉得51单片机性能弱,比较落后,已经没必要去学,这种思想是错误的,首先,单片机只是一个工具,本质上我们是学习C编程及其电路的设计,即使我们以后不使用51单片机,但从中学到的编程水平和电路相关的知识是在所有嵌入式产品上是通用的,另外,在我们现实生活中,包括不限于冰箱,空调,洗衣机,烤箱,电饭锅等绝大多数家用电器的MCU都是51内核的单片机,其优势就在于操作简单,价格便宜,就像如今汽车与飞机发展得再好,考虑成本与便捷上,最后的1公里路还是小电驴最占优势,但最重要的是对于初学者来说,51单片机学习资料较多,底层相对较简单,可以很好地让初学者学习入门单片机,理解寄存器底层工作原理。
推荐:
江科大:51单片机入门(好评最多)
郭天祥—10天学会51单片机
从零学郭天祥10天入门学会51单片机完整版 0基础_哔哩哔哩_bilibili
普中科技51单片机学习
51单片机普中科技视频完整版0基础入门学习_哔哩哔哩_bilibili
金沙滩手把手教学51单片机
可以根据教程去淘宝购买相对应的开发板进行学习51单片机,跟着视频例程去逐步调试开发板上的模块进行学习。
在学习完视频例程后,就可以使用51单片机做一些实战小项目了,比如心形流水灯,小蛮腰,循迹小车等等。
这个过程会涉及到仿真,绘制电路PCB的知识:
电路PCB绘制软件学习推荐:
Altium Designer 17 绘制51单片机开发板PCB全程实战视频0基础入门
Altium Designer 17 绘制51单片机开发板PCB全程实战视频0基础入门_哔哩哔哩_bilibili
0基础入门Altium designer( AD)5小时教学
0基础入门Altium designer( AD)5小时教学_哔哩哔哩_bilibili
Altium Designer 17绘制51单片机开发板PCB全程实战视频0基础入门
Altium Designer 17 绘制51单片机开发板PCB全程实战视频0基础入门_哔哩哔哩_bilibili
Altium Designer16 绘制STM32 pcb开发板0基础入门
Altium Designer16 绘制STM32 pcb开发板0基础入门_哔哩哔哩_bilibili
书籍推荐:
电路设计与制作实用教程(Altium Designer版):
这本书对新手学习操作Altium designer比较容易上手。除了Altium designer,还有立创EDA,PADS,Allegro等PCB设计软件。
仿真软件学习视频推荐:
电路仿真proteus从0基础入门到精通完整版:
电路仿真proteus从0基础入门到精通完整版_哔哩哔哩_bilibili
10分钟学会PROTEUS绘制51单片机最小系统:
10分钟学会PROTEUS绘制51单片机最小系统_哔哩哔哩_bilibili
在51单片机掌握熟练后,可以去学习性能更强的STM32单片机了,在学习前,可以巩固复习一下C语言指针,结构体,链表方面的知识,
推荐进阶书籍:
- C专家编程
- C陷阱与缺陷
- C和指针
STM32单片机学习视频推荐:
(野火)stm32 零基础入门 霸道/指南者/MINI 入门篇 中级篇
【野火】stm32 零基础入门 霸道/指南者/MINI 入门篇 中级篇_哔哩哔哩_bilibili
(野火)stm32 零基础入门 霸道/指南者/MINI 提高篇 大师篇
【野火】stm32 零基础入门 霸道/指南者/MINI 提高篇 大师篇_哔哩哔哩_bilibili
STM32入门 正点原子mini板精英板教学视频完整版
stm32入门 正点原子mini板精英板教学视频完整版_哔哩哔哩_bilibili
开发小技巧:
在你真正的熟悉了51和STM32两款单片机,再遇到其他单片机其实也是大同小异。当你拿到一块从未使用过的单片机,并且需要快速开发一个项目时,你需要网上搜索这块单片机的官网,获取它的开发手册与例程,然后项目开发上需要哪些部分例程就搬运哪些,最后套进自己一套软件编写框架(如状态机),就可以开始写软件逻辑,遇到单片机例程与寄存器配置问题时,就在开发手册搜索关键词进行学习配置。
在你拿到一块陌生的电子模块时,可以选择去淘宝获取资料,比如搜索这个温湿度模块,在商品栏下拉,就能获取这个模块的资料。
如果你是一名在校大学生,在学习完以上知识内容后,可以去参加全国大学生电子设计大赛,飞思卡尔智能车比赛,物联网比赛等嵌入式相关的比赛来提高自己的项目经验,或者自己做一些创意有趣的小项目。
比赛的过程你可能会接触其他单片机,比如arduino,msp430,esp32等单片机
推荐:
零基础入门学习arduino单片机
零基础入门学习arduino单片机_哔哩哔哩_bilibili
10天学会MSP430单片机完整版
10天学会MSP430单片机完整版 从零入门学MSP430 电赛必备_哔哩哔哩_bilibili
4.学习RTOS(实时操作系统)
掌握了C语言与单片机,接下来可以去学习RTOS(实时操作系统), RTOS 即Real-time operating system,实时操作系统,这种操作系统比分时操作系统实时性强,线程切换速度快,线程切换时间可控,为了保证实时性,实时操作系统一般都是抢占型内核,允许高优先级的线程抢占CPU,优先级低的排队执行。普通的单片机程序只有一个while循环,功能比较多的时候这个循环代码很复杂,阅读性差,不好维护。而RTOS可以创建线程,每个线程有自己的while循环,功能可以模块化设计。
推荐:
[野火]《FreeRTOS内核实现与应用开发实战指南》
[野火]《FreeRTOS内核实现与应用开发实战指南》_哔哩哔哩_bilibili
【野火】《uCOS-III内核实现与应用开发实战指南》视频教程
【野火】《uCOS-III内核实现与应用开发实战指南》视频教程_哔哩哔哩_bilibili
RTOS其实也是同理,在学会使用一种后,其他的RTOS也基本能掌握,RTOS是入门操作系统的一个难点,在掌握一定基础后,可以尝试着在以前做过的项目上跑RTOS进行实践学习。
5.学习linux
嵌入式的大宝贝linux,职业上主要分为嵌入式linux应用工程师和linux驱动工程师,linux学习主要偏软件,对于电子专业学生来说跨度会比较大,涉及到较多计算机方面的知识。
视频推荐:
正点原子】Linux入门学习
【正点原子】Linux入门学习(第1期 Ubuntu入门篇)(第2期 ARM(IMX6U)裸机篇)_哔哩哔哩_bilibili
野火Linux入门学习
野火Linux入门学习:第一期-0基础入门篇_哔哩哔哩_bilibili
另外,还有韦东山,朱有鹏大佬的视频也很不错。
QT是一种人机交互界面,说简单点就是一个运行界面!Liunx不像Windows有自己的界面,它的操作主要是命令行模式,就像早期的DOS,Qt就是一个程序,用来写界面,上位机,可以更好的实现人机交互控制!
视频推荐:
零基础入门六天学会QT完整版
ARM+linux也是像学单片机一样,买板子看视频多做项目练习,真正的大佬都是从工作项目中历练出来的。
以上的嵌入式学习路线覆盖较广,真正工作会被细分成硬件工程师,软件工程师,单片机rtos,嵌入式linux应用,嵌入式linux驱动等各个职业,需要看自己对哪方面比较感兴趣,然后精学那个方面的知识。
一个人学习是孤独的,如果你是一名学生,建议加入学校的电子社团或者实验室,有老师的帮助和同学的互助能更好去提升自己,多与同学组队参加项目比赛,能收获更多的知识经验。
更多资料
欢迎加入QQ交流群:867069452
关注VX公众号 : 嵌入式修行者
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎