打印
[信息]

STM32入门方法谈

[复制链接]
1009|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
energy1|  楼主 | 2015-2-26 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 energy1 于 2015-2-26 16:48 编辑

2.1 拿到开发板我该做什么?
国内用户有一个普遍现象:用户拿到开发板后,不知道如何下手。由于没有自己的思路,又是初学者,也没有好的突破口,因此,买来开发板后,开机,看
看触摸屏,感叹“好漂亮”的屏幕显示,然后就迷茫了。开发板是不会告诉你如何使用它的。开发板的光盘?光盘里放置一大堆资料——我该先看哪个?后看哪
个?总之,我如何开始STM32 的入门学习??
针对该现象,芯达STM32 开发板对广大初学者进行详细说明。请用户在购买芯达STM32 开发板后,做两件事情:
1、给开发板上电,查看开发板、液晶屏显示是否运行正常(HEX 下载测试功能还需学习完J-Link 后方可进行)。
2、根据我们编写的入门教材系列,按部就班进行。该套教程从酝酿到编写历时2 个多月时间,教程涉及的内容:从拿到开发板后如何安装J-Link、MDK(keil)调试软件的讲解开始,一直到最后STM32 上的UCOS 移植,每个文档力求讲解通俗、详细,让您更快上手STM32。有了专门的配套教程,会让您在学习STM32 的过程中少走许多弯路,提高学习效率了。总之,它将带您进入STM32 的精彩世界!我们相信,在您的努力研究下,独立地进行简单的STM32开发,只需要不到一个月时间!(网络上有号称只要短短的x 天就学通STM32,笔者认为难度较大。笔者从事STM32 开发,辞职后,进行教学工作,有一段时间了,但是,还不敢说学通,还不过是菜鸟而已,自认为:高级菜鸟。)
2.2 我的时间如何安排
笔者做任何事情前,习惯写一个计划—— 可能是在公司的时候,每天、每周、每月必写计划和总结养成的“毛病”,呵呵。正如在上一节中提及:我们要用一个月内上手STM32!我们开始考虑,如何更好地利用好这一个月的时间呢?我想起了第一天公司入职的情景。我的工作导师让我先领一台PC,安装必要的软件,然后告诉我近一个月的任务是什么。当时我很不屑,因为刚参加了公司组织的培训,以为自己啥都会,但是失败了。原因:盲目进行项目,没有一个计划。
没有计划的日子会很惨。就像每天早上醒来睁开眼睛,却不知道自己今天要干啥。闲话不说,我们谈一谈计划和时间安排。
笔者认为,学习STM32,实际上也是进行项目的过程。进行项目,就必须有项目进度文档,至少需要预计项目的耗时。虽然没有那么规范,但建议大家至少要给自己一个时间表:告诉自己从2010 年x 月y 日至2010 年m 月n 日,必须能够进行独立的项目开发。比如定为30 天,把这个时间分三个阶段:
第一阶段:找感觉—— 谈及STM32,立即反应到调试的方法如何。
第二阶段:修改例程—— 按自己的意愿修改例程,让自己有点成就感。
第三阶段:主动攻击—— 给自己找一个小项目,把它实现出来。
每个阶段有一个目标后,再细化该目标到每天,写出每天要完成的任务。注意,每天的任务不可太多,否则时间太紧,完成不了当天的任务,反而会进入恶性循环,导致第二天、第三天,以后的任务也将无法完成。最终导致整个计划的失败。
每天的任务需要根据自己的具体情况来定。如果有充足的时间,可以安排多
一些任务。如果每天只有2 个小时,切记,宁可少安排任务,也不可追求加快项目进度。当然,心中有事情后,每天自然就会忙碌起来!你的学习生活会更加充
实!


沙发
energy1|  楼主 | 2015-2-26 16:49 | 只看该作者
2.3 碰到问题怎么办?
学习难免会遇到问题。在公司参加培训的时候,学员被告知:困难即机会。所以希望大家坦然面对问题,不能逃避。一小部分同学在遇到问题的时候,总是想:能否避开走另一条路?比如调试程序,某一个程序的语法不太懂,就想用另一种表示方法来代替,或者直接注释掉。——这是很可怕的。因为你现在一旦放过一个问题,可能意味着你一辈子可能都没有机会去碰这个问题。那么你的技术无法进入最高境界。我们是为学习而来,说难听点,我们现在的付出,是想以后能有更好的回报的。此外,碰到问题,不能马上就到处求助。原因:
1、这个问题可能是你的疑问,但它还不具体,你无法用最好的语言让别人接受、理解,并且回答它。很多网友看到模凌两可的问题,是不会回答的。比如Linux 如何移植?这个问题,如果详细说,需要用半本书来解释——没有人愿意花两三个小时告诉你如何移植。所以这时候,你要做的,是先去查资料,自己试图解决它。当碰到某一个具体的步骤,实在想不通的时候,比如Linux 移植过程中,文件挂载打印卡住了。这个现象,可能对有经验的人来说,一句话就能点破。而你因为有先前研究的基础,一听即可知道哪里出问题。这样的方式,学习效率是最高的。
2、CPU 是相通的,相信大部分的同学都学习过单片机,是有一定基础的。如果你碰到问题,去尝试了,自己把问题解决了,你会很有成就感!!因为这是你独立思考的结果!!当然,你应该写一个总结文档,收藏在PC 中备忘。也可以把总结文档发帖到论坛上(比如:www.arm79.com),这样的原创文档,跟帖率是最高的。慢慢地,你在这个领域,有了网络知名度。——这绝对是一笔财富。当然,笔者在此并不是不让大家使用别的方式讨论问题。相反,我提倡大家踊跃发言讨论。刚才是就事论事,也是笔者自己的一点小经历。经历了,才发现如何做才更有效率。

使用特权

评论回复
板凳
energy1|  楼主 | 2015-2-26 16:50 | 只看该作者
第三章 STM32学习步骤
3.2.1第 1步:熟悉调试软件
对初学者来说,我们至少需要安装两个软件:J-Link 驱动软件、MDK(就是原来的Keil)软件。这两个软件,用《乡村爱情》里的一句话“必须的!”安装软件的过,这里不再重复,大家可以参考我们推出的教程《如何安装J-Link 驱动软件》以及《如何安装MDK(Keil)软件》。如何验证自己已经熟悉调试软件的操作了呢?很简单,芯达STM32 开发板光盘里附带了很多HEX 格式的文件,可以选择一些HEX 文件,来观察运行结果。比如LED 灯的例程HEX 文件,下载到芯达STM32 开发板中,观察两个LED 灯的闪烁情况。灯在闪烁,就说明你刚才的操作已经把HEX 文件烧写到闪存中了。该步骤要达到的目标:熟悉调试软件,如烧写HEX 出现问题,可简单判别问题所在,并独立解决。

使用特权

评论回复
地板
energy1|  楼主 | 2015-2-26 16:51 | 只看该作者
3.2.2 第 2步:GPIO编程
这是第一次接触固件库的编程,一定要硬着头皮去了解固件库。建议大家尽量去用固件库。而不是避开固件库自己写代码—— 这样只能在学习中才会发生。实际的项目中,代码成百上千个,如何一个一个自己写?调用固件库中的函数来完成,才是王者之道。GPIO 本身的编程实际上很简单:
1、设置GPIO 口的引脚为输入或者输出模式。我们在进行点灯代码的时候,一般设置为推挽输出模式。
2、操作寄存器,往寄存器里置1 或者清零操作——这个步骤,固件库已经提供了专门的GPIO_SetBits 函数和GPIO_ResetBits 函数,我们只要去调用即可实现对IO 口的置1 和清零。
3、实现多种花样的LED 闪动,使得自己熟悉GPIO 的编程过程。但是在调用固件库的时候,我们还需要有GPIO 结构声明,结构成员初始化,系统时钟配置等等注意事项。可以参考我们推出的《GPIO 编程》文档。该步骤要达到的目标:熟悉调试软件,如烧写HEX 出现问题,可简单判别问题所在,并独立解决。

使用特权

评论回复
5
energy1|  楼主 | 2015-2-26 16:51 | 只看该作者
3.2.3 开始全新的 STM32深入研究
经过以上调试软件的熟悉和GPIO 口的编程调试后,相信您已经对STM32有一定的了解。至少知道如何利用STM32 的固件库去写一个代码。OK,下面我们将开始全新的STM32 深入研究。在这个阶段,将要接触到串口编程、TFT 液晶屏驱动编程、定时器编程、串行外设接口SPI 编程、存储器编程、SD 卡与文件系统移植、USB 读写、UCOS 移植等,有精力还可以研究其他外设。由于篇幅及本教程主题限制,这里不详细说明每个模块都如何编程。请大家参考我们的芯达STM32 入门系列教程,该教程就是按照这样的思路进行编写的。最后祝愿大家早日成为STM32 的高手!

使用特权

评论回复
6
mmuuss586| | 2015-2-26 20:33 | 只看该作者

学习下;

使用特权

评论回复
7
powerful1| | 2015-2-26 21:40 | 只看该作者
值得借鉴一下

使用特权

评论回复
8
搞IT的| | 2015-2-28 18:37 | 只看该作者
一个阶段一个阶段的进行,确实说的不错。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

422

帖子

10

粉丝