资料介绍
本章节对本教程的文档进行必要说明。
开发板模块介绍
硬件介绍请参考
资料介绍
|
|--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语言将底层操作封装,用户不用再关心寄存器级别的操作。
包含两部分:
-
CMSIS
, 这是内核相关的。 -
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源文件中
end