
新建STM32工程 步骤一:创建工程模板文件 1.新建一个文件夹 template 2.在文件夹template里面新建六个文件 (1)CMSIS: 存放内核驱动程序和启动引导文件 (2)FWLIB:存放库函数文件 (3)Project:存放工程文件 (4)User: 存放用户程序(主函数) 效果图: ![]() 步骤二:导入stm32固件库 STM32固件库的下载方式,在文章开头有链接。 1. 打开STM32F10x固件库文件 ![]() 其中需要用到的两个文件:Libraries和Project。 2. 导入文件到 CMSIS 文件 (1)导入内核驱动程序 ![]() STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport 中的两个文件复制到CMSIS文件中。 (2)导入启动引导文件 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 中的所有文件复制到CMSIS文件中。 ![]() 启动引导文件名的英文缩写的意义: cl:互联型产品,stm32f105/107系列。 vl:超值型产品,stm32f100系列。 xl:超高密度(容量)产品,stm32f101/103系列。 ld:低密度产品,Flash小于64KB。 md:中等密度产品,Flash等于64KB或128KB。 hd:高密度产品,Flash大于128KB。 (3)最后CMSIS 文件效果图 ![]() 3. 导入文件到 FWLIB 文件 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver中的inc和src文件复制到FWLIB文件中。 最后 FWLIB 文件效果图 ![]() 4. 导入文件到 User 文件 STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的以下三个文件复制到 User 文件中。 ![]() STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template中的以下四个文件复制到 User 文件中。 ![]() 最后 User 文件效果图 ![]() 步骤三:新建STM32工程 1. 新建工程 ![]() 将工程文件建在 Project 文件中 ![]() 2. 选择 STM32F103C8 芯片 ![]() 确定之后跳出一个窗口,直接关掉 ![]() 3. 添加工程文件到Keil_5工程中 ![]() 新建CMSIS,FWLIB,User 三个文件,然后把刚刚复制在对应文件夹下的文件添加。 ![]() 因为选择的芯片是STM32F103C8——64k内存,所以选择 md 启动引导文件 ![]() ![]() 最后添加成功 ![]() 4. 添加路径和宏定义 点击魔法棒,选择 C/C++ 添加宏定义:USE_STDPERIPH_DRIVER, STM32F10X_MD 注意:这里选择的是 md 启动引导文件,所以宏定义是 STM32F10X_MD ![]() 添加文件路径 ![]() 5. 选择默认ARM编译器版本 ![]() 6. 编译运行成功 ![]() 问题解答 在评论区看到有人遇到以下问题: 问题1: 出现750个以下错误 …\CMSIS\core_cm3.h(173): error: #20: identifier “uint32_t” is undefined ![]() 是因为 uint32_t、uint16_t、uint8_t 这三个没有定义。 正常这三个是定义在 stdint.h 文件中。 ![]() 没有定义这三个uint32_t、uint16_t、uint8_t,说明没有#include <stdint.h> 问题1解决方法: 正常在 core_com3.h 文件中第 90 行应该有#include <stdint.h> 这行代码。 没有的,自行加上#include <stdint.h> ,便可以解决问题! ![]() |