keil之stm32f10x模板工程创建
文章目录
- 1.文件目录说明(含未添加到keil工程的文件:如部分启动文件)
- 一级目录说明:
- 二级目录说明:
- 三级目录说明:
- 文件树结构
- 横向展示文件目录框图
- 2. keil工程文件创建
- 新建空白工程
- project工程文件目录说明
- 横向展示的工程文件目录结构图
- 头文件路径配置
- `USE_STDPERIPH_DRIVER宏定义设置(重要)`
- main.c测试用例
- keil编码与编辑设置
- 编译测试
- 参考资料
1.文件目录说明(含未添加到keil工程的文件:如部分启动文件)
一级目录说明:
- app文件夹:存放main.c文件,是程序的入口文件。
- config文件夹:存放stm32f10x_conf.h配置文件、中断配置文件(it.c、it.h)
- firmware文件夹:固件库(firmware library),存放内核文件夹cmsis、ST官方标准驱动库文件夹driver、启动文件startup
- mdk文件夹:存放keil工程文件
- my_driver文件夹:外设器件驱动文件,比如显示屏驱动文件,按键驱动文件等。(部分教程里也经常取名为Hardware)
- third_library文件夹:比如移植开源组件EayLogger、FatFs文件系统、FreeRTOS实时系统
- readme.md文件:必要的工程文件介绍信息
二级目录说明:
firmware之下有cmsis文件、driver文件、startup文件:
- cmsis文件下存放core与device文件夹
- driver文件下存放inc、src文件夹,需要从STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x直接复制过来
- startup文件下存放各类启动文件,方便后续选择和添加到keil工程里
三级目录说明:
cmsis文件下存放core与device文件夹
- core文件下,需要移植STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport
- device文件夹下,需要移植STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
文件树结构
project/
│
├── app/ # 应用程序
│ └── main.c # 程序主入口
│
├── config/ # 配置文件
│ ├── stm32f10x_conf.h # 外设库配置
│ ├── it.c # 中断服务程序
│ └── it.h # 中断头文件
│
├── firmware/ # 固件库
│ ├── cmsis/
│ │ ├── core/ # CMSIS核心
│ │ │ ├── core_cm3.c
│ │ │ └── core_cm3.h # 移植自…\CoreSupport
│ │ │
│ │ └── device/ # 设备特定文件
│ │ ├── stm32f10x.h
│ │ ├── system_stm32f10x.c
│ │ └── … # 移植自…\DeviceSupport\ST\STM32F10x
│ │
│ ├── driver/ # 标准外设驱动
│ │ ├── inc/ # 头文件
│ │ └── src/ # 源文件
│ │
│ └── startup/ # 启动文件(未全部加入工程)
│ ├── startup_stm32f10x_ld.s # 小容量
│ ├── startup_stm32f10x_md.s # 中容量
│ └── startup_stm32f10x_hd.s # 大容量
│
├── mdk/ # Keil工程(子目录会随着工程创建自动创建)
│ ├── Project.uvprojx
│ └── Objects/ # 编译输出
│
├── my_driver/ # 用户驱动
│ ├── lcd/ # 显示屏驱动
│ └── key/ # 按键驱动
│
├── third_library/ # 第三方库
│ └── EasyLogger/ # 日志组件
│
└── readme.md # 工程说明
横向展示文件目录框图
2. keil工程文件创建
新建空白工程
Project->New uVision Project
文件命名stm32f10x,选择mdk目录
选择stm32f103c6系列的芯片
默认勾选OK即可
project工程文件目录说明
- app文件夹:存放main.c文件,是程序的入口文件。
- config文件夹:存放stm32f10x_conf.h配置文件、中断配置文件(it.c、it.h)。
- firmware/startup文件夹:存放指定启动文件startup_stm32f10x_ld.s
- firmware/cmsis文件夹:存放内核.c文件
- firmware/driver文件夹:存放src文件
- my_driver文件夹:存放外设驱动文件
- third_library文件夹:存放三方库文件
横向展示的工程文件目录结构图
以下是横向展示的工程文件目录结构图,使用Mermaid语法绘制,不同层级用不同颜色区分:
头文件路径配置
魔术棒-》勾选Use MicroLIB
魔术棒-》C/C++,Include Paths,添加下列路径(third_library后面有需要再添加)
third_library后续有需要再添加
USE_STDPERIPH_DRIVER宏定义设置(重要)
CTRL+F搜索conf.h
可以看到需要添加如下宏定义 USE_STDPERIPH_DRIVER
魔术棒-》C/C++,添加上述宏定义
main.c测试用例
#include "stm32f10x.h" // Device header
#include <stdbool.h>
#include <stdio.h>int main(void)
{while(1){//test}
}
keil编码与编辑设置
编译测试
编译成功后".\Objects\stm32f10x.axf" - 0 Error(s), 0 Warning(s).
参考资料
- STM32 大小容量芯片之间的差别及启动文件的选择——博客园
- STM32不同型号的芯片对应的启动文件如何选择——CSDN博客
- 工程模板创建——B站