文 / 杜洋 洋桃电子
到洋桃电子全部文章:http://www.doyoung.net/YT/index.html
这篇文章PDF百度云下载:https://pan.baidu.com/s/1hsqyVZI
前两篇文章中我们一路从宏观到局部,从全景到细节,知道了什么是ARM,什么是STM32,也了解了STM32家族系列,接下来要具体解剖一个STM32家族成员的“内脏”,也就是解析一款STM32单片机的内部功能。大家千万不要误以为我们只在学习这一款单片机,就好像解剖一个人的内脏不是只为了研究这一个人,目的是通过这个人的内脏结构了解人类的共同之处,我们是要通过研究某一型号的单片机来了解STM32家族所有单片机的共同特点,管中窥豹,举一反三。
从更大的方面讲,单片机本身就是一种微小型计算机,其核心原理是计算机原理,未来再学习其他公司的非ARM内核的单片机时,因为原理相通,学起来也更容易。而学习单片机内部或外部的各种功能,其本质是学习总线通信和寄存器操作。我曾在讲51单片机入门的《爱上单片机》一书中打过比方,学习各种功能就是操作寄存器,寄存器就像一个布满开关的灯光、音响控制台,把某几个开关打开会有一种效果,再关另一些开关又变了效果。当你对这个比喻有共鸣的时候就说明你学通了。
我们要研究单片机的内部功能,应该从什么地方入手呢?单片机只是一个引出许多金属引脚的塑料外壳的东西,盯着它看一天也看不出什么名堂。其实想了解一款单片机,最直接的方法是看生产厂家写的使用说明书,就像看电冰箱、洗衣机的说明书一样。单片机或者其他元器件的说明书有一个专业的名称,叫数据手册,英文是Datasheet,是各生产厂商专门为开发人员和学习者而写的。所有的技术开发人员都要通它过来了解最权威的技术说明。 如果你在学单片机的路上没有看过数据手册,而是看了某些教程图书,那么你得到的是别人的二手资料。就好像不去看《论语》原文而去看《论语心得》一样。但对于初学者来说,直接阅读数据手册一定看不懂, 必须得有前辈给你注释和分析,所以才有那么多单片机入门图书。这本来没有什么问题,但如果学习者只依赖入门图书而不知道、不熟悉、不想看数据手册,那真是买椟还珠、舍本逐末了。我在此做STM32入门的引路人,但未来的路一定要你自己 独立地走下去。
数据手册在哪里可以找到呢?最权威、最原始的地方是各生产厂商的官方网站,比如STM32单片机的所有数据手册都可以在ST公司官网上找到。但是我们在学习、开发的过程中要用到的元器件太多,如果每一样都要找到公司官网,且很多官网都是英文的,找起来也非常麻烦。于是就有了专门用来搜索数据手册的搜索引擎,最常用的有alldatasheet.com和datasheet5. com,它们的界面和百度一样,你只要把 芯片型号输入搜索框,就能找到PDF格式的数据手册。除了数据手册,别人对这款单片机的使用经验、遇见问题的解决方法也是重要的参考,这时用百度或Google搜索单片机型号,就能得到别人的经验文章,有时还能下载别人的源程序。总之,擅长用搜索引擎、熟悉ST公司官网,对我们的学习非常有帮助。我们已经决定要用STM32F103C8T6 这款单片机,于是我打开百度搜索,输入“STM32F103C8T6 数据手册中文”,就能找到下面要介绍的数据手册。剖析数据手册的内容就是在了解单片机的内部功能和性能,但数据手册原文有百余页,我这里只挑重点,把每个功能的用途和特点讲出来,其他的细节大家都要去看英文原文。想学好STM32也不是看看我的文章就行的,要搭上更多的精力和时间,再看各种资料手册,最后还要多动手、多实践。幸好一旦你学会之后,所学的知识给你带来的回报和成就感要远远大于你的付出。我常对初学者说,学习是一种一本万利的投资。
【图1】数据手册第1页