如何学习一个芯片(笔记ing)

刚学习stm32,发现一些很喜欢的方法,记录下来。
 个初学者,一开始对 STM32 一般是没有概念的,所以首先要做的就是多做实验,一定
要相信实践出真知,结合上面 2 本手册,你很快就会熟悉 STM32,进而随心所欲。其次要多做
笔记,在你不知道的时候,找 MDK 的例子,找第二点中的两本本手册,当你碰到新的知识点
的时候,把它记下来,俗话说:好记性不如烂笔头。将你刚学到的东西用笔记下了,对以后没
有坏处。 
只要以上三点做好了,学习 STM32 基本上就不会有什么问题了。当你有需要用的东西,
自己写代码写不出来了,就可以在 MDK 自带的例子中找找,看看是否有相关的例程。对于
STM32 的外设,MDK 基本都是带有例程的,所以一般你的问题,可以在 MDK 自带的例程中
找到答案。 
MDK 的例子分为 2 部分,一部分是与 USB 无关的,这部分代码存放在:D:
\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Examples 目录下, 而另外一部分与 USB 相关
的例子则存放在:D:\KEIL3.80A\ARM\Examples\ST\STM32F10xUSBLib\Demos 目录下(D 盘
是我 MDK3.80A 的安装盘,所以这里路径是这样的,如果你安装在其他位置,修改为相应的目
录即可以) 。 
接下来我们用一个实例,来说明如何参考 MDK 的例子为自己所用。希望能起到抛砖引玉
的作用。这里以一个 IO 口翻转为例,其实就是 LED 的闪烁,看看如何借用 MDK 的代码。首
先打开 D:\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Examples 目录,可以看到很多例
子 IO口翻转的例子在GPIO目录下的IOToggle下, 我们将这个目录下面的所有文件拷贝到D:
\KEIL3.80A\ARM\Examples\ST\STM32F10xFWLib\Project 里面,这里会提示如图 3.3.4.2 所示的
信息: 我们选择全部就可以了。然后单击 Project.Uv2,打开工程。编译一遍;提示没有错误,没有警告。说明这个工程是可以用的。关于这个工程是如何使用的,在
readme.txt 里面是有详细说明的,在使用之前最好先看看这个说明。重点看看硬件环境的说明,
从图 3.3.4.5 的说明可以知道,这个 LED 的翻转程序,对两款板子(STM3210B-EVAL 和
STM3210E-EVAL)分别是连在哪几个 IO 口上的,我们这个是在 USE_STM3210E_EVAL 板上
运行的,所以使用的是 PF.6~9。 
接下来我们要做的就是一步步跟踪代码,然后针对你的疑问点,打开 Peripherals 里面的相
关外设,查看寄存器,看看 MDK 的示例代码是如何一步步修改里面的寄存器来实现的。对与
外设的配置,MDK 一般都是调用库函数实现的,无法直接查看,这就需要你对照手册,慢慢
摸索了,根据从寄存器看到的结果,大概也就能推出 MDK 是如何实现这样的操作了。其次一
个重要的方法是通过查看汇编代码,来看到底是如何操作的,由于作者对汇编不熟悉,这里就
不废话了,免得误导大家。 
这样对照着 MDK 的例子,看看自己的代码在哪些地方和它有不一样的地方,如果出了问
题,很可能就在这些不同的地方,只要根据 MDK 的示例来修改,一般你的问题就能得到解决。
当然,这过程中需要多多查看手册,看看手册里怎么说的,MDK 又是怎么做的。 
原文地址:https://www.cnblogs.com/notepi/p/3137089.html