stm32基本的工程

工程

一个基本的工程包括右边的这一系列文件,各个文件的用途如下:

  • CMSIS

    ARM 内核与系统相关的文件(由 st 提供)

  • Lib

    与基本功能相关的库文件(由 st 提供,用户按需添加)

  • Startup

    启动文件,由汇编语言编写(由 st 提供)

  • User

    用户自己的程序, main.c 即主程序文件

  • Basic

    内部驱动文件

  • Hardware

    外部硬件驱动文件

固件库

stm32 中,功能配置寄存器的每一位都控制着一个硬件的状态,内核通过改变功能配置寄存器中的内容,从而控制硬件。但是寄存器很难编程,于是我们引入“标准固件库”,通过调用相关的接口来完成相关的功能。这就是采用固件库的编程方案。

此外,还有两个其他的编程方案:STM32Cube(HAL) 和 STM32Cube(LL) 。这两种方案是最近新的编程方案。

新建工程的步骤

1 文件准备

新建工程文件夹(假设叫 project),然后在里面新建 4 个文件夹:CMSISLibStartupUser

然后下载固件库 https://pan.baidu.com/s/1VZ3DtoaffdfrIb_cS5oWUw#list/path=%2F,并将对应文件复制到 project 文件夹中:

固件库 复制到
\Libraries\CMSIS\CM3\CoreSupport内的所有文件
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 内.c、.h文件
CMSIS
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm内的所有文件 Startup
Libraries\STM32F10x_StdPeriph_Driver内 inc、src文件夹 Lib
Project\STM32F10x_StdPeriph_Template内 main和stm开头的文件 User

2 新建工程

在 Keil 中新建一个工程(New —-> New μVision Project),选择 STM32F103C8 确定后,然后 “Copy ……”那个对话框选择否

3 添加文件夹和文件

点击工具栏中三色方块那个图标,弹出方框中间那里添加 CMSISLibStartupUser 4 个文件夹,然后删除第一个文件夹。

然后选中 CMSIS,然后在右边点击 Add Files,然后添加 CMSIS 里面两个 .c 文件,点确定。

选中 Lib,然后添加 src 里面的所有文件 .s 文件(选择文件类型为 asm)。

选中 Startup 然后添加 startup_stm32f10x_md.s 一个文件。

选中 User,然后添加 .c 文件。

然后点击确定。

4 更改编译选项

点击魔法棒那个图标,根据实际晶振,选择晶振频率。然后选择 C/C++,在第一个 Define 那里输入 USE_STDPERIPH_DRIVER,STM32F10X_MD。

然后在下面 Include Paths 那里点击右边三点按钮,接着将项目里面所有的文件夹添加到进去,注意 Lib 要添加子文件夹。