首页>热点资讯>想要从编程小白成为达人,这些你必须知道!(附STM32学习指南)

想要从编程小白成为达人,这些你必须知道!(附STM32学习指南)

2019-06-18
内容详细

学习一直都是不容易的,在工程师的世界里可能是更加的需要我们付出时间和精力。而学习能力在现在这个时代又是显得十分的重要,相信许多烧友们对编程的学习也是十分感兴趣的,或者正在学习的过程中。所有小编今天特别整理了一份满满的干货给到小伙伴们学习和借鉴。


image


我知道现在有成千上万的资源可以“教你如何编码”。但是,这绝对不是这里最重要的部分,也不是这篇文章的主题。重要的是你如何建立起良好的学习习惯,如何更好的吸收处理新知识,时刻保持自己的学习动力,并把注意力放在核心问题上。


如果你愿意远离你的舒适区!你一定会为学习到新知识而感到兴奋,并且能获得优越感,久而久之,你也一定会成为一名优秀的开发者。


我已经有多年的执教经验,当我的学生告诉我他们没有动力的时候,我经常看到一种现象,他们只执着于最终的大目标,而忽视了每一次小小的进步,这让他们始终觉得离目标很远,从而导致挫败感。当我刚开始学编程的时候也有同样的想法,不断的和身边的人对比,觉得他们比我优秀太多,我永远无法达到我要的高度。


image


正是一直存在这样的想法,往往忽视了自己做出的努力,即便自己轻松创建出一个比之前复杂的应用程序时,也不会有成就感,因为心里一直沉浸在和更有经验的开发者的比较中。


学习如何编程是最困难的,每个人都在努力克服。本文会把重心放在学习编程时最常见的问题上:如何尽可能有效地处理新信息,如何保持动力。


有效地处理新信息


每个人吸收新知识的方式不同,所以,在开始学习代码之前,你首先要做的就是先学习如何学习。


很快你就会发现,最常见的两种学习资源就是:在线课程和语言文档。除超人类的天才外,是没人能够在只看课程/读纯文本的情况下还能记住所有知识点,所以每当你在看视频课程或阅读文档时,感到迷茫和困惑是完全正常的,毕竟对于没有太多知识的人来说,通过一些极客术语来理解代码是蛮难的。


无论你觉得自己有多优秀都不要忽略基础知识,开始学一门语言的时候不要跳过任何一个细节,如果你一开始不注意的话,会后悔的。即便是阅读文档,也请从第一页开始阅读,相信我:注意细节,过后会感谢今天的你。


image


教学是最好的学习方式,是每隔10分钟,就停下来用自己的话解释一下你刚刚所学到的东西,即便周围没有人,你可能会觉得做起来十分困难,但这种做法可以让你立刻知道自己还不了解的知识点有哪些,你可以及时巩固研究,就记下来,通过实践编码,会让你记忆的更加简单深刻。


不要只听课程和阅读文档,你还应通过积极参加创建自己的个人项目,把你所学的每一个新的知识点都运用上来,这听起来似乎也不是那么简单,但你只要一直坚持,你一定可以提高你的编程技能。


保持动力


很多人问我日常生活中如何让自己编写出这么多代码,思考了很久之后,得出以下答案:


每个人否喜欢玩游戏,不论什么类型的游戏,因为游戏可以带给你即时的满足感,这就是动机成因,通过编程,我也获得到了满足感,但编程不是游戏,没有你想象中的容易。


设立小目标,不是因为你不思进取,而是因为你不注重改善,做一个当天完成的事情待办列表:也许只是读一页,或者只看一个课程更或者只是编写10行代码,看到自己完成整个待办事项清单,你会获得满足感,对自己的进步更有信心。“我已经完成了今天的目标任务”比“我只完成了2%的课程”要好得多,及时行乐是很重要的。


不断提醒自己,你已经走了多远。这一点经常被忽视,你不会意识到自己每天都在进步,但相信我,你只要每天都编码(哪怕一点点),你也会越来越好。所以最好的方法是写日记,每天用一句话来记录自己的困惑,一个月后再回头看看,你可以看到自己正在变得更好。


在你真正感兴趣的个人项目上编程,这里不包含在待办事项列表中,而是你真正想要建立的项目,也不要想到自动驾驶汽车、机器人等等这些庞大的项目,可以选择一些小项目,比如创建一个网站或者一个小型游戏,这种项目会让你更有动力去完成它,一旦项目完成,你就会有成就感。


意识到自己比想象中要优秀。你可能会觉得你身边的每个人知道的东西都比你多的多,这也被称为冒名顶替者综合征。但事实并非如此,只要你有足够的学习动力、足够努力地编码,你一定可以可以成为一名优秀的开发人员。


要时刻牢记的事


不要和其他开发者对比。非常老套的建议,但这是至关重要的。你比你想象中的进步更快。我下面这张照片,如果在4个月前看到这些屏幕中的代码,我会感到害怕的。但现在我完全可以找出这里面犯了多少错误


image


你比你想象的要进步得多。每一次学习或编码,你都在成长。


每个人一开始都很迷茫,大家都是一样的,但这并不意味着你会成为一个糟糕的程序员。你现在的想法只是学习过程的一部分。不久,你会回头看看这时的你,你一定会认同我说的!


最后如果可以,试着找一位导师。通过向其求教相信更有助于你克服问题并获得新的启发。


好的,讲了这么多理论学习编程语言的方法,下面我们来讲讲如何学习STM32呢?


首先,在学习Cortex-M3时,我们必须要知道必要的缩略语。


整理如下:


AMBA:先进单片机总线架构 ADK:AMBA设计套件
AHB:先进高性能总线 AHB-AP:AHB访问端口
APB:先进外设总线 ARM ARM:ARM架构参考手册
ASIC:行业领域专用集成电路 ATB :先进跟踪总线

BE8:字节不变式大端模式 CPI:每条指令的周期数


DAP:调试访问端口 DSP:数字信号处理(器)
DWT:数据观察点及跟踪 ETM:嵌入式跟踪宏单元
FPB:闪存地址重载及断点 FSR:fault状态寄存器

HTM:Core Sight AHB跟踪宏单元
ICE:在线仿真器 IDE:集成开发环境


IRQ:中断请求(通常是外中断请求)
ISA:指令系统架构 ISR:中断服务例程
ITM:仪器化跟踪宏单元

JTAG:连接点测试行动组(一个关于测试和调试接口的标准)
LR:连接寄存器


LSB:最低有效位

MSB:最高有效位
LSU:加载存储单元
MCU:微控制器单元

MPU:存储器保护单元


MMU:存储器管理单元
MSP:主堆栈指针
NMI:不可屏蔽中断
NVIC:嵌套向量中断控制器
PC:程序计数器
PPB:私有外设总线


Cortex-M3芯片简介


1、芯片的基本结构如下图


image


2、关于ARMv7的知识了解


在这个版本中,内核架构首次从单一款式变成3种款式。


款式A:设计用于高性能的“开放应用平台”——越来越接近电脑了


款式R:用于高端的嵌入式系统,尤其是那些带有实时要求的——又要快又要实时。


款式M:用于深度嵌入的,单片机风格的系统中。


介绍A:用于高性能的“开放应用平台”,应用在那些需要运行复杂应用程序的处理器。支持大型嵌入式操作系统。


R:用于高端的嵌入式系统,要求实时性的。


M:用于深度嵌入的、单片机风格的系统中。


3、Cortex-M3处理器的舞台


高性能+高代码密度+小硅片面积,使得CM3大面积地成为理想的处理平台,主要应用在以下领域:


(1)低成本单片机
(2)汽车电子
(3)数据通信
(4)工业控制
(5)消费类电子产品


4、Cortex-M3的简化图


image


5、寄存器组


处理器拥有R0-R15的寄存器组,其中R13最为堆栈指针SP,SP有两个,但是同一时刻只能有一个可以看到,这就

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并删除内容。
0
0