资料介绍

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

开发板模块介绍

硬件介绍请参考、或者是目录中的pdf文档。

资料介绍

|
|--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。

可参考:

《使用ReadtheDocs托管文档》

https://www.xncoding.com/2017/01/22/fullstack/readthedoc.html

  • ref目录

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

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的缩写,文件夹中的文件是头文件。

  3. Project

例程和模板。

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

  • Utilities

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

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

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

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

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

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

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

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


end