1.从stm32网站下载标准外设库,解压后得到下面文件

Libraries目录:

    CMSIS目录是函数固件库的核心文件:CMSIS向下负责与内核和各个外设直接打交道,向上提供实时操作系统用户程序调用的函数接口。若无CMSIS标准,那么各个公司设计的库函数就会不同。 

        CM3\CoreSupport下的core_cm3.c、core_cm3.h是CMSIS的核心文件,提供进入Crotex-M3内核的接口,这是由ARTM公司提供的,对所有M3内核的芯片都适用。

        DeviceSupport\ST\STM32F10x目录下主要存放一些启动文件以及基础的寄存器和中断向量的定义的文件。

        startup目录主要存放芯片的引导文件,即Bootload.

                这8个startup打头的.s文件,是针对不同容量的芯片的启动文件

                    startup_stm32f10x_hd.s: 适用于小容量的STM32,小容量: <= 32K
                    startup_stm32f10x_ld.s: 适用于中等容量的STM32,中等容量: >= 64K && <= 128K
                    startup_stm32f10x_md.s: 适用于大容量的STM32,大容量: >= 256K

    STM32F10x_StdPeriph_Driver放的是STM32的固件库源码文件

        inc存放stm32f10x_xxx.h头文件

        src目录下存放的是stm32f10x_xxx.c的源代码文件,每一个.c和.h文件对应称为一组文件,每组文件对应一个片内外设,如RCC、IIC。

2.重要文件说明:

stm32f10x.h这个头文件是STM32开发最为重要的一个头文件,其间有许多结构体和宏定义,这个文件里面主要是系统寄存器的定义申明以及包装对其的操作。

    extern "C" {   这个语句用来说明后面的定义都是使用C语言写的。这个 __cplusplus 是指C++来的,4、5句的意思就是说如果用C++编译器的话,它里面是定义有__cplusplus 这个的,而通过 extern "C" { 告知编译器,这段代码是用C编写的,要按照C语言编译。这是因为C++里面有函数重载,编译的时候把参数也编译了,而C的话,编译只编译函数名。

    #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
这段是用来定义器件容量,可以通过自己取消注释来选择,也可以在KEIL里面设置全局宏定义,2种方式。

    用于定义是否使用外设驱动,如果注释掉或者keil中没设全局宏定义的话,则代表不使用ST库提供的外设驱动库,在本文倒数第二段代码中有句

 

#ifdef USE_STDPERIPH_DRIVER
   #include "stm32f10x_conf.h"
  #endif

  stm32f10x_conf.h用于外设注释配置。

 

codesys的库怎么看源代码_codesys的库怎么看源代码

 

 

 

 

 

 

system_stm32f10x.c对应的头文件时system_stm32f10x.h,这组文件的功能是设置系统和总线时钟,其间最重要的函数是SystemInit()函数,这个函数是在系统启动时调用的,用来设置整个系统的时钟。在system_stm32f10x.c文件中的开头注释,也明确指明这组文件的作用: