STM32标准库开发创建工程

创建新项目工程所需文件

stm32标准库开发在创建工程的要包含芯片固件库文件和标准库文件(封装的库函数),如下图

在这里插入图片描述

图1

标准库开发工程创建实例

1.创建新文件夹存放工程

创建一个空的项目文件夹stm32_demo_project

在这里插入图片描述

图2

打开keil,创建新项目new project,选择刚才创建的项目文件夹,输入项目名字stm32_demo_project并保存

在这里插入图片描述

图3

在这里插入图片描述

图4

选择项目用到的stm32f103c8t6芯片后点击ok

在这里插入图片描述

图5

关闭弹出的配置文件窗口

在这里插入图片描述

图6

创建新工程后的目录结构

在这里插入图片描述

图7

2.添加startup文件

从stm32的例程文件复制一下stm32f103c8t6芯片的启动文件,缺少启动文件项目不能运行,根据芯片的规格选择startup_stm32f10x_md.s

在这里插入图片描述

图8

在这里插入图片描述

图9

将启动文件startup_stm32f10x_md.s放到工程目录startup文件夹下

在这里插入图片描述

图10

除了在工程目录添加startup文件,在keil里面也需要添加startup分组,否则keil里是找不到文件的

在这里插入图片描述

图11

选中source group1分组,点击F2键,将分组改名为startup,名字一致方便自己添加、查找

在这里插入图片描述

图12

右键startup分组,点击manage project items,添加startup_stm32f10x_md.s到startup分组

在这里插入图片描述

图13

在这里插入图片描述

图14

将startup文件路径关联起来,以防止编译的时候找不到头文件或者出现其他报错,点击魔术棒options for target,点击c/c++,在include paths处添加,startup文件的路径

在这里插入图片描述

图15

在这里插入图片描述

图16

在这里插入图片描述

图17

3.添加CMSIS文件

从stm32的例程文件中复制stmf103c8t6的内核文件到工程目录CMSIS文件里

在这里插入图片描述

图18

在这里插入图片描述

图19

右键Target1,点击Add Group创建新的分组CMSIS,右键CMSIS分组,点击manage project items,将刚才的五个内核文件添加到CMSIS分组

在这里插入图片描述

图20

在这里插入图片描述

图21

Startup文件和CMSIS文件添加成功后的keil目录

在这里插入图片描述

图22

将CMSIS文件路径关联起来,以防止编译的时候找不到头文件或者出现其他报错,点击魔术棒options for target,点击c/c++,在include paths处添加,CMSIS文件的路径

在这里插入图片描述

图23

在这里插入图片描述

图24

4.添加lib文件

从stm32的例程文件中复制stmf103c8t6的标准库函数文件到工程目录lib文件里,就可以使用标准库函数进行开发,不需要自己直接操作寄存器开发。标准库包括.c和.h文件可以分开放,也可以一起放,此处是分开放的

在这里插入图片描述

图25

在这里插入图片描述

图26

在这里插入图片描述

图27

右键Target1,点击Add Group创建新的分组lib,右键lib分组,点击manage project items,将刚才的库函数的.c文件添加到lib分组,.h文件如果开发过程有需要修改的地方可以再添加进来

在这里插入图片描述

图28

将lib文件路径关联起来,以防止编译的时候找不到头文件或者出现其他报错,点击魔术棒options for target,点击c/c++,在include paths处添加,lib头文件的路径

在这里插入图片描述

图29

在这里插入图片描述

图30

虽然分开.c和.h文件后路径一般是连接.h文件路径,但是.c的文件路径即src文件路径也可以添加进来,预防可能出现的编译错误

图31

在这里插入图片描述

5.添加user文件

最后在工程目录创建user文件夹,放置用户编程的main.c函数、stm32芯片的库函数配置文件stm32f10x_conf.h、stm32中断入口文件stm32f10x_it.c/h

在这里插入图片描述

图32

从stm32的例程文件中复制stm32芯片的库函数配置文件stm32f10x_conf.h、中断入口文件stm32f10x_it.c/h到工程目录user文件里

在这里插入图片描述

图33

在这里插入图片描述

图34

右键Target1,点击Add Group创建新的分组user,右键user分组,点击add new item to user,创建main.c文件,路径要选择工程目录;

在这里插入图片描述

图35

在这里插入图片描述

图36

main.c创建后编写一下基础的代码

在这里插入图片描述

图37

右键user分组,点击manage project items,将刚才的stm32f10x_conf.h、stm32f10x_it.c/h文件添加到user分组

在这里插入图片描述

图38

将user文件路径关联起来,以防止编译的时候找不到头文件或者出现其他报错,点击魔术棒options for target,点击c/c++,在include paths处添加,user头文件的路径

在这里插入图片描述

图39

6.配置宏定义

虽然前面在user文件中添加了stm32芯片配置文件stm32f10x_conf.h,但是在外设寄存器描述文件stm32f10x.h中是条件编译的,因此需要配置一下宏定义USE_STDPERIPH_DRIVER,否则编译报错,库函数用不了

在这里插入图片描述

图40

点击魔术棒options for target,点击c/c++,将宏定义USE_STDPERIPH_DRIVER放到define

在这里插入图片描述

图41

最后编译0错误0警告,工程创建完成。

在这里插入图片描述

图42

下载程序的时候,可以点击魔术棒options for target,点击debug,选择自己对应的下载器,后,点击setting,勾选reset and run,这样程序下载到stm32f103c8t6最小开发板的时候就可以直接运行,不需要再按复位键

在这里插入图片描述

图43

在这里插入图片描述

图44

在这里插入图片描述

图45

总结

步骤:创建工程文件夹——>keil创建工程——>移植配置文件、标准库文件到工程文件夹——>
keil创建对应文件分组并添加对应文件、连接对应文件的头文件——>部分配置修改

文件链接

stm32_demo_project是本次实例创建的项目
固件库STM32F10x_StdPeriph_Lib_V3.5.0是官方的STM32F10x标准外设库,里面包含了本次实例用到的移植文件
百度网盘文件连接

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐