2. 资料介绍

本章节对本教程的文档进行必要说明。

2.1. 开发板模块介绍

硬件介绍请参考<W108_F103_Tech\doc\source\spec>、或者是<W108_F103_Tech\data\SPEC>目录中的pdf文档。

2.2. 资料介绍

|
|--code
|--data
|	|--HDK
|	|--REF
|	|--SDK
|	|--SPEC
|--doc
|	|--build
|	|--source
|		|--spec
|		|--base
|		|--Advanced
|--ref
|--readme.md
  • Code目录

    这个目录保存了教程的相关代码,全部为压缩包形式,在代码中有丰富的注释。

  • data目录

    这个目录是产品说明文档,包含4个子目录:

    HDK是硬件原理图和丝印说明。
    REF是主控相关资料。
    SDK为ST提供的相关库。
    开发板产品说明书

  • doc目录

    教程文档。

    build是md转换为html的目录。

    source是md文档目录。其中spec是产品说明书,base是基础教程,Advanced是提高教程。

    本教程文档使用markdown格式,使用Typora编写。

    所有文档使用Sphinx管理。

    md文件经过sphinx处理后,生成html文件。文件入口在doc\build\html中的index.html,使用浏览器打开即可浏览所有文档。

    sphinx可以将文档处理为pdf,如有需要,可自行转换。

    Typora也可以将md文档转换为pdf。

    可参考:

  • ref目录

    本目录包含一些Code目录相关,或者教程相关的文档和资料。例如一些软件工具、一些从网络获取的文档资料等。

2.3. STM32库说明

库有多重要?

当你有一定基础时,学习一款新芯片,最好的渠道就是库,就是库中包含的例程。

当你用一款新芯片做项目开发时,最好的资料就是库和例程,对于硬件的底层操作,完全可以拷贝官方例程的代码。我们专心做上层驱动和应用就行了。

可以说,ST推出库的这个创意,大大方便了开发人员。

我们不用再关心一个外设寄存器的bit0是什么功能。我们只需要知道,这个外设有这样的功能,用库接口操作即可。

下面我们看看STM32的库到底是如何组成的。

  • ST有很多库,我们现在说的是标准外设库:STM32F10x_StdPeriph_Lib_V3.5.0
|--_htmresc
|--Libraries
|	|--CMSIS
|	|--STM32F10x_StdPeriph_Driver
|		|--inc
|		|--src
|--Project
|	|--STM32F10x_StdPeriph_Examples
|	|--STM32F10x_StdPeriph_Template
|--Utilities
|	|--STM32_EVAL
|		|--Common
|		|--STM32L152_EVAL
|		|--STM3210B_EVAL
|		|--STM3210C_EVAL
|		...
|		|--stm32_eval.c
|		|--stm32_eval.h
  • Libraries

    库文件目录,所谓的库就是用c语言将底层操作封装,用户不用再关心寄存器级别的操作。

    包含两部分:

    1. CMSIS, 这是内核相关的。
    2. STM32F10x_StdPeriph_Driver, 这是芯片相关的。在文档中包含了所有的外设操作。src是源文件,Inc是include的缩写,文件夹中的文件是头文件。
  • Project

    例程和模板。

    Examples中的就是官方例程,对于我们开发程序有非常重要的参考意义。

  • Utilities

    不同官方开发板的接口封装。什么意思呢?

    在Examples中有很多例程,官方有很多开发板,那么是不是每个开发板都写一个例程呢?

    当然不是,例如,一个操作SPI FLASH的例程,操作SPI FLASH的程序,在不同的开发板都是一样的,那么这些代码就放在Examples目录下。

    操作FLASH需要SPI接口,需要IO口,不同的芯片,不同的开发板,代码是有区别的。比如F103和STM32Lxx .

    这些不同的操作,就放在Utilities目录下。

    我们参考一个例程,除了要看Examples中的代码,还要看STM32_EVAL目录下对应平台的代码。

    我们的教学板是STM32103VET,我们要参考的代码就在STM3210E_EVAL目录下。

    当然,还有一些是所有平台都通用的,那么就放在stm32_eval.c源文件中


20200109

end