芯嵌STM32入门教程之一《如何提升STM32的学习效率》

**************************************php

* 如下教程也可在这里下载:编程

* 连接:http://www.51stm32.com/forum.php?mod=viewthread&tid=7&extra=page%3D 网络

**************************************
架构

第一章 笔者的入门总结
electron

1.1 为何要把时间花在“犹豫”上?函数

每当咱们在入门以前(STM32是这样,DSP/ARM9也同样),总会会有不少疑问,会有不少顾虑。咱们渴望知道学习STM32前景如何?须要啥基础?难不难?适不适合我?可是何时能心潮澎湃地、至关着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。工具

       你们通常都是从51单片机过来的,回想一下,咱们以前学单片机时如何入门呢?实际上都是先看书(理论),再玩板子(实践)。严格地说,应该是模仿实验。熟悉以后才会本身写程序代码实现某个功能。所以,若是你正在咨询STM32;若是你正对STM32心潮澎湃;若是你想入门STM32;那么,从如今开始,不要犹豫了,不要想再详细地了解STM32的前景了。作一个可能影响你一辈子的决定吧!不用咨询,不用兴奋,开始看书籍(文档)吧!!没有捷径,每一个人都是这么走过来的。学习

1.2 看资料须要计划、耐心和速度测试

       这里所谓的“资料”包括STM32书籍、文档。由于STM32有个特色,datasheet不少都是中文的,有些同窗就没有去买书籍,直接看STM32的用户手册,也是能够的。可是无论看书籍仍是文档,咱们是须要计划的。不是今天看3页,明天看5页。一本书看了两个月,还在磨蹭。请记住,你学的不是寂寞,是STM32! 看书或文档不是用来消遣时间的。背水一战吧,给本身规定一个底线:两周内把必定粗略地过一遍!不要求都看懂,事实上,不可能都看懂。但咱们必须理解基本知 识,对难度高的知识有一个印象,至少之后碰到问题的时候,咱们会似曾相识,感受在哪里见到过,因而翻资料上网找答案——带着问题的时候,效率才是超高的。网站

       两周过去了,STM32的知识你过一遍了吗?没看完?那么,你应该考虑这些天中,你是否尽力了?是否真的想学STM32?或者仍是看到STM32人气很高,也想跟下时髦?是否是碰到问题无法解决就想放弃了?如今是你作第二个决定的时候了,请决定你是否继续攻读STM32。若是是一时冲动想跟时髦,请立刻放弃——你已经浪费两周时间了,你还想再浪费14天吗?若是想吃得苦中苦,方为人上人,OK,请继续往下看:)

1.3 STM32必备开发板

稍微了解一些理论知识后,如今摆在你面前,有两条路:

第一,本身画PCB制板、焊接、调试。

第二,购买一套性价比高的开发板。

笔者以前作过几回PCB设计,并且当时在实验室能够报销全部费用,就本身作了一个PCB板。建议有报销条件的同窗本身设计一块板子学习。毕竟2PCB的设计不是很难。

没法报销的同窗,能够选购一款开发板学习。由于本身出钱制板,工程费就差很少100元,加上芯片元件费用、液晶屏费用,可能制做最小系统也要将近200元。因此购买开发板仍是比较合算的。毕竟如今市场上的STM32开发板已经白菜价了。这里不方便进行各个品牌STM32开发板的比较。

总之一句话,选购的开发板必定要性价比高的,资源丰富的,同时也是实惠的,而不是贵的。实际上,大多数同窗选购的开发板是用来学习的,不是用来项目开发的。所以,能让你上手STM32,目的已经达到了。

1.4 熟悉开发板并试图写程序

       这时的你,不能再停留在理论上了。你如今的心情,应当是:看到开发板,立刻就有一种说不出的兴奋!可是,心急吃不了热豆腐!请耐心把厂家配套的开发板使用手册浏览一遍,熟悉你买的开发板。按照使用手册,把开发板上的相关测试、操做步骤,都动手作一遍,你会发现,原来开发STM32是如此简单!那么就让咱们开始STM32的开发之路吧!

如何进行真正入门STM32,请看第二章《STM32入门方法谈》。

第二章  STM32入门方法谈

2.1 拿到开发板我该作什么?

国 内用户有一个广泛现象:用户拿到开发板后,不知道如何下手。因为没有本身的思路,又是初学者,也没有好的突破口,所以,买来开发板后,开机,看看触摸屏, 感叹“好漂亮”的屏幕显示,而后就迷茫了。开发板是不会告诉你如何使用它的。开发板的光盘?光盘里放置一大堆资料——我该先看哪一个?后看哪一个?总之,我如 何开始STM32的入门学习??

针对该现象,芯嵌STM32开发板对广大初学者进行详细说明。请用户在购买芯达STM32开发板后,作两件事情:

一、给开发板上电,查看开发板、液晶屏显示是否运行正常(HEX下载测试功能还需学习完J-Link后方可进行)。

二、根据咱们编写的入门教材系列,循序渐进进行。该套教程从酝酿到编写历时2个多月时间,教程涉及的内容:从拿到开发板后如何安装J-LinkMDK keil)调试软件的讲解开始,一直到最后STM32上的UCOS移植,每一个文档力求讲解通俗、详细,让您更快上手STM32。有了专门的配套教程,会让您在学习STM32的过程当中少走许多弯路,提升学习效率了。总之,它将带您进入STM32的精彩世界!咱们相信,在您的努力研究下,独立地进行简单的STM32开发,只须要不到一个月时间!(网络上有号称只要短短的x天就学通STM32,笔者认为难度较大。笔者从事STM32开发,辞职后,进行教学工做,有一段时间了,可是,还不敢说学通,还不过是菜鸟而已,自认为:高级菜鸟。)

三、具体拿到开发板须要作的事情与步骤,请参考光盘根目录,word文档《1务必读我》,里面是《芯嵌stm32致顾客的一封信》,可能对你有所启发。

 

2.2 个人时间如何安排

笔者作任何事情前,习惯写一个计划——多是在公司的时候,天天、每周、每个月必写计划和总结养成的“毛病”,呵呵。正如在上一节中说起:咱们要用一个月内上手STM32!咱们开始考虑,如何更好地利用好这一个月的时间呢?我想起了第一天公司入职的情景。个人工做导师让我先领一台PC,安装必要的软件,而后告诉我近一个月的任务是什么。当时我很不屑,由于刚参加了公司组织的培训,觉得本身啥都会,可是失败了。缘由:盲目进行项目,没有一个计划。

没有计划的日子会很惨。就像天天早上醒来睁开眼睛,殊不知道本身今天要干啥。闲话不说,咱们谈一谈计划和时间安排。

笔者认为,学习STM32,实际上也是进行项目的过程。进行项目,就必须有项目进度文档,至少须要预计项目的耗时。虽然没有那么规范,但建议你们至少要给本身一个时间表:告诉本身从2010xy日至 2010mn日,必须可以进行独立的项目开发。好比定为30天,把这个时间分三个阶段:

第一阶段:找感受——谈及STM32,当即反应到调试的方法如何。

第二阶段:修改例程——按本身的意愿修改例程,让本身有点成就感。

第三阶段:主动攻击——给本身找一个小项目,把它实现出来。

每一个阶段有一个目标后,再细化该目标到天天,写出天天要完成的任务。注意,天天的任务不可太多,不然时间太紧,完成不了当天的任务,反而会进入恶性循环,致使次日、第三天,之后的任务也将没法完成。最终致使整个计划的失败。

天天的任务须要根据本身的具体状况来定。若是有充足的时间,能够安排多一些任务。若是天天只有2个小时,切记,宁肯少安排任务,也不可追求加快项目进度。固然,心中有事情后,天天天然就会忙碌起来!你的学习生活会更加充实!

2.3 碰到问题怎么办?

学习不免会遇到问题。在公司参加培训的时候,学员被告知:困难即机会。因此但愿你们坦然面对问题,不能逃避。一小部分同窗在遇到问题的时候,老是想:可否避开走另外一条路?好比调试程序,某一个程序的语法不太懂,就想用另外一种表示方法来代替,或者直接注释掉。——这是很可怕的。由于你如今一旦放过一个问题,可能意味着你一生可能都没有机会去碰这个问题。那么你的技术没法进入最高境界。咱们是为学习而来,说难听点,咱们如今的付出,是想之后能有更好的回报的。

此外,碰到问题,不能立刻就处处求助。缘由:

一、这个问题多是你的疑问,但它还不具体,你没法用最好的语言让别人接受、理解,而且回答它。不少网友看到模凌两可的问题,是不会回答的。好比Linux如何移植?这个问题,若是详细说,须要用半本书来解释——没有人愿意花两三个小时告诉你如何移植。因此这时候,你要作的,是先去查资料,本身试图解决它。当碰到某一个具体的步骤,实在想不通的时候,好比Linux移植过程当中,文件挂载打印卡住了。这个现象,可能对有经验的人来讲,一句话就能点破。而你由于有先前研究的基础,一听便可知道哪里出问题。这样的方式,学习效率是最高的。

二、CPU是相通的,相信大部分的同窗都学习过单片机,是有必定基础的。若是你碰到问题,去尝试了,本身把问题解决了,你会颇有成就感!!由于这是你独立思考的结果!!固然,你应该写一个总结文档,收藏在PC中备忘。也能够把总结文档发帖到论坛上(好比:www.51stm32.com),这样的原创文档,跟帖率是最高的。慢慢地,你在这个领域,有了网络知名度。——这绝对是一笔财富。

固然,笔者在此并非不让你们使用别的方式讨论问题。相反,我提倡你们踊跃发言讨论。刚才是就事论事,也是笔者本身的一点小经历。经历了,才发现如何作才更有效率。

第三章 STM32学习步骤

在第二章,咱们已经谈及到学习须要计划。那么,在这章节,咱们就来详细地阐述这个计划——仅供参考。笔者是嵌入式爱好者,也是学习者,不是高手,是菜鸟,高级菜鸟。

3.1 关于STM32文档学习

本期教程,咱们假定你们已经对STM32的书籍或者文档有必定的理解。如不理解,请当即阅读STM32的文档,以获取最基本的知识点。

STM32的学习与ARM9的学习有一个很大的区别。ARM9的学习通常是须要购买书籍的。好比三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。英文好的同窗,请不要觉得你很牛,能够只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的仍是中文。看英文的速度仍是比看中文慢一些,咱们要的是最短的时间,而不是追求短期内记住全部细节。固然,若是是一篇论文,建议看英文原版仍是有好处的。

STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工做作的很是好。翻译了大量的英文文档,迎合了国内的不少工程师的思惟。因此如今大部分STM32F103xxx的用户datasheet都有中文版。所以能够不用去购买书籍,看电子档便可。固然,有雄厚经济条件的朋友能够购买本书籍哈~

学习的时候,关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。这两个文档,在光盘里均可以找到。ST官方的全部中英文文档,在ST的中国大陆区网站能够下载到:

http://www.stmicroelectronics.com.cn/stonline/mcu/MCU_Pages.htm

该网址,是针对有充足的时间、精力的同窗,建议去下载须要查阅的文档,以获取更多信息。

阅读《STM32F103xxx参考手册》,必定要注意,不须要所有阅读——没有时间的。建议选读,可是前几章必读。存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章必定要花时间阅读。

后面章节,讲述的是具体的功能模块设计。若是咱们用到哪一个模块,就能够去阅读哪一个模块。好比在使用AD的时候,就须要去阅读第10 ADC。其余不举例。相信每一个初学者都有本身的研究方向和判断。

阅读《STM32固件库使用手册》,主要是为了简化编程。STM32给咱们提供了一个很是好的固件函数库,咱们只要去调用便可。固然,咱们也能够不去碰这些固件库——传说使用它会使得代码效率变低,是有道理的。网络上也出现了不少网友本身写的代码,没有使用带固件库函数。如何取舍,在于您的选择。

这里我主要强调的是,阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。好比第一章文档和库规范中的命名规则,编码规则,这些都是须要注意的。第二章是最关键的,但愿你们熟读。第二章描述了固件库的架构,咱们如何去使用固件库的步骤等。有了第二章的基础,咱们就能够借助固件库写出本身的代码了。第四章开始以后,就能够根据你们的须要来阅读。实际上,后续的章节,都是描述某个模块有什么什么函数,每一个函数如何使用等。

关于后面的章节,建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,由于平时常常会用到。

以上提到的这两个文档,已经足够您看的了,呵呵。但愿您能从中获取大量的STM32基础知识。

3.2 30天上手STM32计划

1)这里所谓的“上手”,指的是能理解并掌握一些经常使用的STM32外设,真正想掌握一款处理器,30天根本说明不了什么问题。只能说,你已经入门了。可是,这对咱们初学者来讲已经足够了。

2)这里所谓的“30天”,根据每一个人的时间安排不一样而不一样。

若是您天天有充足的时间学习,那么能够规定本身尽快地能独立地进行简单的STM32开发。

若是您天天只有业余时间来学习STM32,建议根据您的具体状况安排时间。毕竟计划时间若是安排太紧,反而收不到良好的效果,只能进入恶性循环,这是咱们要避免的。

可是建议,无论您有无充足的时间,都必须给本身作一个计划!!

我这里列出一个思路,仅供参考。

步骤一,安装完STM32学习的软件,好比J-LinkKeil for ARMMDK)、ISP(若是须要从串口下载的话)。这些软件安装的详细步骤,能够参考咱们推出的相应教程进行。

步骤二,挑选部分例程的HEX,好比LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁状况。这部分的操做,能够参考咱们推出的相应的教程进行。

实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感受的阶段。其实咱们还没开始STM32的学习呢!

步骤三,准备几个经常使用的文档,好比《STM32的用户手册》,《STM32固件库使用手册》等文档。用于平时查阅。这些文档,在光盘中的芯片手册目录中都可找到。

步骤四,开始查看例程的编写,看看例程是如何写的,本身能否修改下例程,达到本身想要的效果呢?芯达STM32开发板的光盘中为你们提供了丰富的例程代码,能够参考。您必定能够修改出更精彩的例程!

步骤五Ucos-II的移植,是否须要试一下?

恭喜你,至此,你已经能够自如进行独立的开发了。最后一步,给本身一个目标(项目),把它实现出来!

再次强调,以上只是一个学习STM32的思路,供你们参考。下面列出了前面关键的步骤,但愿你们能尽快入门。后续的每一个模块的编程,请参考咱们的芯达STM32入门系列教程。

3.2.11步:熟悉调试软件

对初学者来讲,咱们至少须要安装两个软件:J-Link驱动软件、MDK(就是原来的Keil)软件。这两个软件,用《乡村爱情》里的一句话“必须的!”

安装软件的过程,这里再也不重复,你们能够参考咱们推出的教程《如何安装J-Link驱动软件》以及《如何安装MDK(Keil)软件》。

如何验证本身已经熟悉调试软件的操做了呢?很简单,芯达STM32开发板光盘里附带了不少HEX格式的文件,能够选择一些HEX文件,来观察运行结果。好比LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁状况。灯在闪烁,就说明你刚才的操做已经把HEX文件烧写到闪存中了。

该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

3.2.22步:GPIO编程

这是第一次接触固件库的编程,必定要硬着头皮去了解固件库。建议你们尽可能去用固件库。而不是避开固件库本身写代码——这样只能在学习中才会发生。实际的项目中,代码成百上千个,如何一个一个本身写?调用固件库中的函数来完成,才是王者之道。

GPIO自己的编程实际上很简单:

一、设置GPIO口的引脚为输入或者输出模式。咱们在进行点灯代码的时候,通常设置为推挽输出模式。

二、操做寄存器,往寄存器里置1或者清零操做——这个步骤,固件库已经提供了专门的GPIO_SetBits函数和GPIO_ResetBits函数,咱们只要去调用便可实现对IO口的置1和清零。

三、实现多种花样的LED闪动,使得本身熟悉GPIO的编程过程。

可是在调用固件库的时候,咱们还须要有GPIO结构声明,结构成员初始化,系统时钟配置等等注意事项。能够参考咱们推出的《GPIO编程》文档。

该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

3.2.3开始全新的STM32深刻研究

通过以上调试软件的熟悉和GPIO口的编程调试后,相信您已经对STM32有必定的了解。至少知道如何利用STM32的固件库去写一个代码。OK,下面咱们将开始全新的STM32深刻研究。在这个阶段,将要接触到串口编程、TFT液晶屏驱动编程、定时器编程、串行外设接口SPI编程、存储器编程、SD卡与文件系统移植、USB读写、UCOS移植等,有精力还能够研究其余外设。

因为篇幅及本教程主题限制,这里不详细说明每一个模块都如何编程。请你们参考咱们的芯达STM32入门系列教程,该教程就是按照这样的思路进行编写的。

最后祝愿你们早日成为STM32的高手!

芯嵌stm32技术论坛:http://www.51stm32.com/

芯嵌stm32官方淘宝:http://shop36353570.taobao.com/

相关文章
相关标签/搜索