STM32入门系列教程如何提高STM32的学习效率(2010-04-08)目录第一章笔者的入门总结..............................................................................................21为什么要把时间花在“犹豫”上?..............................................................22看资料需要计划、耐心和速度......................................................................23学STM32必备开发板....................................................................................31.4熟悉开发板并试图写程序..............................................................................3第二章入门方法谈........................................................................................41拿到开发板我该做什么?..............................................................................41我的时间如何安排..........................................................................................52.3碰到问题怎么办?..........................................................................................5第三章学习步骤............................................................................................61关于STM32文档学习....................................................................................63.230天上手STM32计划.................................................................................71第1步:熟悉调试软件.........................................................................81第2步:GPIO编程..............................................................................82开始全新的STM32深入研究..............................................................9福州芯达工作室简介....................................................................................................9第一章笔者的入门总结每当我们在入门之前(ARM是这样,DSP也一样),总会会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。大家一般都是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩板子(实践)。严格地说,应该是模仿实验。熟悉之后才会自己写程序代码实现某个功能。因此,如果你正在咨询STM32;如果你正对STM32心潮澎湃;如果你想入门STM32;那么,从现在开始,不要犹豫了,不要想再详细地了解STM32的前景了。做一个可能影响你一生的决定吧!不用咨询,不用兴奋,开始看书籍(文档)吧每个人都是这么走过来的。这里所谓的“资料”包括STM32书籍、文档。因为STM32有个特点,datasheet很多都是中文的,有些同学就没有去买书籍,直接看STM32的用户手册,也是可以的。但是不管看书籍还是文档,我们是需要计划的。不是今天看3页,明天看5页。一本书看了两个月,还在磨蹭。请记住,你学的不是寂寞,是STM32!看书或文档不是用来消遣时间的。背水一战吧,给自己规定一个底线:两周内把一定粗略地过一遍!不要求都看懂,事实上,不可能都看懂。但我们必须理解基本知识,对难度高的知识有一个印象,至少以后碰到问题的时候,我们会似曾相识,感觉在哪里见到过,于是翻资料上网找答案——带着问题的时候,效率才是超高的。两周过去了,STM32的知识你过一遍了吗?没看完?那么,你应该考虑这些天中,你是否尽力了?是否真的想学STM32?或者还是看到STM32人气很高,也想跟下时髦?是不是碰到问题没法解决就想放弃了?现在是你做第二个决定的时候了,请决定你是否继续攻读STM32。如果是一时冲动想跟时髦,请马上放弃——你已经浪费两周时间了,你还想再浪费14天吗?如果想吃得苦中苦,方为人上人,OK,请继续往下看:)稍微了解一些理论知识后,现在摆在你面前,有两条路:第一,自己画PCB制板、焊接、调试。第二,购买一套性价比高的开发板。笔者之前做过几次PCB设计,而且当时在实验室可以报销所有费用,就自己做了一个PCB板。建议有报销条件的同学自己设计一块板子学习。毕竟2层PCB的设计不是很难。无法报销的同学,可以选购一款开发板学习。因为自己出钱制板,至少需要150元,加上芯片元件费用、液晶屏费用,可能制作最小系统也要约250元。所以购买开发板还是比较合算的。毕竟现在市场上的STM32开发板已经白菜价了。这里不方便进行各个品牌STM32开发板的比较。总之一句话,选购的开发板一定要性价比最高的,最实惠的,而不是最贵的。实际上,大多数同学选购的开发板是用来学习的,不是用来项目开发的。因此,能让你上手STM32,目的已经达到了。这时的你,不能再停留在理论上了。你现在的心情,应当是:看到开发板,马上就有一种说不出的兴奋!但是,心急吃不了热豆腐!请耐心把厂家配套的开发板使用手册浏览一遍,熟悉你买的开发板。按照使用手册,把开发板上的相关测试、操作步骤,都动手做一遍,你会发现,原来开发STM32是如此简单!那么就让我们开始STM32的开发之路吧!如何进行真正入门STM32,请看第二章《STM32入门方法谈》。第二章入门方法谈国内用户有一个普遍现象:用户拿到开发板后,不知道如何下手。由于没有自己的思路,又是初学者,也没有好的突破口,因此,买来开发板后,开机,看看触摸屏,感叹“好漂亮”的屏幕显示,然后就迷茫了。开发板是不会告诉你如何使用它的。开发板的光盘?光盘里放置一大堆资料——我该先看哪个?后看哪个?总之,我如何开始STM32的入门学习??针对该现象,芯达STM32开发板对广大初学者进行详细说明。请用户在购买芯达STM32开发板后,做两件事情:1、给开发板上电,查看开发板、液晶屏显示是否运行正常(HEX下载测试功能还需学习完J-Link后方可进行)。2、根据我们编写的入门教材系列,按部就班进行。该套教程从酝酿到编写历时2个多月时间,教程涉及的内容:从拿到开发板后如何安装J-Link、MDK(keil)调试软件的讲解开始,一直到最后STM32上的UCOS移植,每个文档力求讲解通俗、详细,让您更快上手STM32。有了专门的配套教程,会让您在学习STM32的过程中少走许多弯路,提高学习效率了。总之,它将带您进入STM32的精彩世界!我们相信,在您的努力研究下,独立地进行简单的STM32开发,只需要不到一个月时间!(网络上有号称只要短短的x天就学通STM32,笔者认为难度较大。笔者从事STM32开发,辞职后,进行教学工作,有一段时间了,但是,还不敢说学通,还不过是菜鸟而已,自认为:高级菜鸟。)笔者做任何事情前,习惯写一个计划——可能是在公司的时候,每天、每周、每月必写计划和总结养成的“毛病”,呵呵。正如在上一节中提及:我们要用一个月内上手STM32!我们开始考虑,如何更好地利用好这一个月的时间呢?我想起了第一天公司入职的情景。我的工作导师让我先领一台PC,安装必要的软件,然后告诉我近一个月的任务是什么。当时我很不屑,因为刚参加了公司组织的培训,以为自己啥都会,但是失败了。原因:盲目进行项目,没有一个计划。没有计划的日子会很惨。就像每天早上醒来睁开眼睛,却不知道自己今天要干啥。闲话不说,我们谈一谈计划和时间安排。笔者认为,学习STM32,实际上也是进行项目的过程。进行项目,就必须有项目进度文档,至少需要预计项目的耗时。虽然没有那么规范,但建议大家至少要给自己一个时间表:告诉自己从2010年x月y日至2010年m月n日,必须能够进行独立的项目开发。比如定为30天,把这个时间分三个阶段:第一阶段:找感觉——谈及STM32,立即反应到调试的方法如何。第二阶段:修改例程——按自己的意愿修改例程,让自己有点成就感。第三阶段:主动攻击——给自己找一个小项目,把它实现出来。每个阶段有一个目标后,再细化该目标到每天,写出每天要完成的任务。注意,每天的任务不可太多,否则时间太紧,完成不了当天的任务,反而会进入恶性循环,导致第二天、第三天,以后的任务也将无法完成。最终导致整个计划的失败。每天的任务需要根据自己的具体情况来定。如果有充足的时间,可以安排多一些任务。如果每天只有2个小时,切记,宁可少安排任务,也不可追求加快项目进度。当然,心中有事情后,每天自然就会忙碌起来!你的学习生活会更加充实!学习难免会遇到问题。在公司参加培训的时候,学员被告知:困难即机会。所以希望大家坦然面对问题,不能逃避。一小部分同学在遇到问题的时候,总是想:能否避开走另一条路?比如调试程序,某一个程序的语法不太懂,就想用另一种表示方法来代替,或者直接注释掉。——这是很可怕的。因为你现在一旦放过一个问题,可能意味着你一辈子可能都没有机会去碰这个问题。那么你的技术无法进入最高境界。我们是为学习而来,说难听点,我们现在的付出,是想以后能有更好的回报的。此外,碰到问题,不能马上就到处求助。原因:1、这个问题可能是你的疑问,但它还不具体,你无法用最好的语言让别人接受、理解,并且回答它。很多网友看到模凌两可的问题,是不会回答的。比如Linux如何移植?这个问题,如果详细说,需要用半本书来解释——没有人愿意花两三个小时告诉你如何移植。所以这时候,你要做的,是先去查资料,自己试图解决它。当碰到某一个具体的步骤,实在想不通的时候,比如Linux移植过程中,文件挂载打印卡住了。这个现象,可能对有经验的人来说,一句话就能点破。而你因为有先前研究的基础,一听即可知道哪里出问题。这样的方式,学习效率是最高的。2、CPU是相通的,相信大部分的同学都学习过单片机,是有一定基础的。如果你碰到问题,去尝试了,自己把问题解决了,你会很有成就感!!因为这是你独立思考的结果!!当然,你应该写一个总结文档,收藏在PC中备忘。也可以把总结文档发帖到论坛上(比如:),这样的原创文档,跟帖率是最高的。慢慢地,你在这个领域,有了网络知名度。——这绝对是一笔财富。当然,笔者在此并不是不让大家使用别的方式讨论问题。相反,我提倡大家踊跃发言讨论。刚才是就事论事,也是笔者自己的一点小经历。经历了