STM32: 新建库函数工程
建立 STM32_FW 文件夹
获取 ST 公司提供的 STM32 固件库 en.stsw-stm32054.zip, 得到文件夹
STM32F10x_StdPeriph_Lib_V3.5.0。新建文件夹,命名为STM32_FW,在该文件夹下新建 7 个文件夹,分别命名为boot,cmsis,library,user,obj,list,interrupt.负责粘贴
STM32F10x_StdPeriph_Lib_V3.5.0下STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm找到 8 个文件
将上面 7 个文件复制到 boot 目录下。此为 STM32 的启动文件,是汇编语言格式,每个 STM32 必须有启动文件。
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下找到
这 3 个文件,以及
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下
两个文件,将这 5 个文件复制到
STM32_FW下cmsis目录中,此为 STM32 的 BSP 文件,负责基本的内核及外设初始化。复制
STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下inc和src到STM32_FW的library中,这两个文件夹为 STM32 的固件函数库文件。复制
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下
到
STM32_FW的 interrupt 中,此为 STM32 在 MDK 下的中断服务入口函数。复制
STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下stm32f10x_conf.h到STM32_FW到user目录下。在
STM32_FW下user中新建main.c
执行完后就得到如下目录结构。
STM32_FW\boot 目录:startup_stm32f10x_cl.s、startup_stm32f10x_hd.s、 startup_stm32f10x_hd_vl.s、startup_stm32f10x_ld.s、startup_stm32f10x_ld_ vl.s、startup_stm32f10x_md.s、startup_stm32f10x_md_vl.s、startup_ stm32f10x_xl.s
STM32_FW\interrupt 目录:STM32f10x_it.h、STM32f10x_it.c
STM32_FW\cmsis 目录:core_cm3.c、core_cm3.h、stm32f10x.h、system_ stm32f10x.c、system_stm32f10x.h
STM32_FW\user 目录:main.c、stm32f10x_conf.h
STM32_FW\library 目录:inc、src 文件夹
STM32_FW\list 目录:空
STM32FW\obj 目录:空
建立工程
新建一个文件夹,放本次工程文件,如
proj,将STM32_FW的文件夹全部复制到改文件夹目录下。打开 keil, 选择 Project->New uVision Project,

保存后,选择芯片类型,取消添加 STM32 的 Stertup code
在项目管理目录窗口下点击 Manage Projects items, 将 Target 重命名为 Proj, 并删除 Source Group 1, 在级联菜单选择
Add Group,将 boot,cmsis,library,interrupt,user 添加进去。