首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何提高STM32 的学习效率3

如何提高STM32 的学习效率3

在第二章,我们已经谈及到学习需要计划。那么,在这章节,我们就来详细
地阐述这个计划—— 仅供参考。笔者是嵌入式爱好者,也是学习者,不是高手,
是菜鸟,高级菜鸟。
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-Link、Keil for ARM(MDK)、
ISP(如果需要从串口下载的话)。这些软件安装的详细步骤,可以参考我们推出
的相应教程进行。
步骤二,挑选部分例程的HEX,比如LED 灯的例程HEX 文件,下载到芯达
STM32 开发板中,观察两个LED 灯的闪烁情况。这部分的操作,可以参考我们
推出的相应的教程进行。
实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的
阶段。其实我们还没开始STM32 的学习呢!
步骤三,准备几个常用的文档,比如《STM32 的用户手册》,《STM32 固件
库使用手册》等文档。用于平时查阅。这些文档,在光盘中的芯片手册目录中均
可找到。
步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,
达到自己想要的效果呢?芯达STM32 开发板的光盘中为大家提供了丰富的例程
代码,可以参考。您一定可以修改出更精彩的例程!
步骤五,Ucos-II 的移植,是否需要试一下?
恭喜你,至此,你已经可以自如进行独立的开发了。最后一步,给自己一个
目标(项目),把它实现出来!
再次强调,以上只是一个学习STM32 的思路,供大家参考。下面列出了前
面关键的步骤,希望大家能尽快入门。
3.2.1第1步:熟悉调试软件
对初学者来说,我们至少需要安装两个软件:J-Link 驱动软件、MDK(就是
原来的Keil)软件。这两个软件,用《乡村爱情》里的一句话“必须的!”
安装软件的过程,这里不再重复,大家可以参考我们推出的教程《如何安装
J-Link 驱动软件》以及《如何安装MDK(Keil)软件》。
如何验证自己已经熟悉调试软件的操作了呢?很简单,芯达STM32 开发板
光盘里附带了很多HEX 格式的文件,可以选择一些HEX 文件,来观察运行结果。
比如LED 灯的例程HEX 文件,下载到芯达STM32 开发板中,观察两个LED 灯
的闪烁情况。灯在闪烁,就说明你刚才的操作已经把HEX 文件烧写到闪存中了。
该步骤要达到的目标:熟悉调试软件,如烧写HEX 出现问题,可简单判别
问题所在,并独立解决。
3.2.2 第2步:GPIO编程
这是第一次接触固件库的编程,一定要硬着头皮去了解固件库。建议大家尽
量去用固件库。而不是避开固件库自己写代码—— 这样只能在学习中才会发
生。实际的项目中,代码成百上千个,如何一个一个自己写?调用固件库中的函
数来完成,才是王者之道。
GPIO 本身的编程实际上很简单:
1、设置GPIO 口的引脚为输入或者输出模式。我们在进行点灯代码的时候,
一般设置为推挽输出模式。
2、操作寄存器,往寄存器里置1 或者清零操作——这个步骤,固件库已经
提供了专门的GPIO_SetBits 函数和GPIO_ResetBits 函数,我们只要去调用即可
实现对IO 口的置1 和清零。
3、实现多种花样的LED 闪动,使得自己熟悉GPIO 的编程过程。
但是在调用固件库的时候,我们还需要有GPIO 结构声明,结构成员初始化,
系统时钟配置等等注意事项。可以参考我们推出的《GPIO 编程》文档。
该步骤要达到的目标:熟悉调试软件,如烧写HEX 出现问题,可简单判别
问题所在,并独立解决。
3.2.3 开始全新的STM32深入研究
经过以上调试软件的熟悉和GPIO 口的编程调试后,相信您已经对STM32
有一定的了解。至少知道如何利用STM32 的固件库去写一个代码。OK,下面我
们将开始全新的STM32 深入研究。在这个阶段,将要接触到串口编程、TFT 液
晶屏驱动编程、定时器编程、串行外设接口SPI 编程、存储器编程、SD 卡与文
件系统移植、USB 读写、UCOS 移植等,有精力还可以研究其他外设。
由于篇幅及本教程主题限制,这里不详细说明每个模块都如何编程。请大家
参考我们的芯达STM32 入门系列教程,该教程就是按照这样的思路进行编写的。
最后祝愿大家早日成为STM32 的高手!
返回列表