参考资料:初学者如何处理STM32创建工程时stm32_eval.h的问题、新建MDK工程
软件:Keil μVision4,JLINK
硬件:STM32F107VC( Cortex-M3)
使用一个例子来介绍一下怎么建立一个带板级函数STM_EVAL的MDK工程。本教程使用的标准库版本为 3.1.2,固件库文件夹是stm32f10x_stdperiph_lib_V3.1.2,例子使用stm32f10x_stdperiph_lib_V3.1.2\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle。
1、创建一个IOToggle文件夹,并分别创建以下四个文件夹。
(1)User : 存放用户源程序
将 STM32F10x_StdPeriph_Lib_V3.1.2\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggle)中的文件复制到IOToggle\User文件夹
(2) Project : 用户KEIL工程文件
在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件
(3) Libraries: ST标准库文件
将STM32F10x_StdPeriph_Lib_V3.1.2\Libraries整个文件夹复制过来。
(4)Utilities:用于STM32_EVAL和STM3210C_EVAL评估板的专用驱动
2、新建一个Keil MDK工程
(1) 启动Keil MDK,点击菜单 New uVision Project
新建一个工程,命名为new_project,保存到IOToggle/project目录下
(2) 选择CPU类型为 STM32F107VC (这是MDV-STM32-107开发板采用的CPU类型)
(3) 当提示是否复制启动代码时,请选择否。(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4)根据自己的需要修改Target名字,并在这个Project下创建几个Group
(5)给各个Group开始依次添加文件
1) 给User文件夹添加文件main.c和stm32f10x_it.c,文件存放在User文件夹中
右击User Group,选择Add Files to Group 'User'
2)给RVMDK文件夹添加文件startup_stm32f10x_cl.s
启动文件路径:Libraries\CMSIS\Core\CM3\startup\arm
3)给CMSIS文件夹添加文件core_cm3.c、system_stm32f10x.c
CMSIS接口文件路径:Libraries\CMSIS\Core\CM3
4)给Utilities文件夹添加文件stm3210c_eval.c
板级函数文件路径:Utilities\STM32_EVAL\STM3210C_EVAL
5)给stdPeriph_Driver文件夹添加文件misc.c、stm32f10x_gpio.c、stm32f10x_rcc.c、stm32f10x_exti.c、stm32f10x_dma.c、stm32f10x_i2c.c、stm32f10x_spi.c、stm32f10x_usart.c。
设备驱动文件路径:Libraries\STM32F10x_StdPeriph_Driver\src
3、配置工程
1)Device(芯片型号的选择)、Target(硬件设置)、User(用户功能设置)、asm(与汇编语言编译相关设置)、Linker(连接器功能设置),选择默认设置。
2)output(输出文件类型设置),选择Project/Object文件夹,在Create Hex File 前打钩。
3)List(列表文件设置),**选择****Project/**List文件夹。
4)C/C++(与C语言编译相关设置),添加三个预编译宏 STM32F10X_CL(使用的互联型芯片), USE_STDPERIPH_DRIVER(这是ST库用到了这两个宏),USE_STM3210C_EVAL(使用的评估版),添加5个路径如下所示。
5)Debug(仿真功能设置),**选择Cortex-M/R J-LINK/J-Trace调试器,**在 Run to main前打钩。
6)Utilities(下载功能设置),**选择Cortex-M/R J-LINK/J-Trace,**点settings按钮,添加Flash编程算法,选择STM32连接型器件,Flash容量256K字节。
4、编译工程
点击“Build”按钮,下方Build Output看Error和Warning
5、下载工程
用JLink连接STM32板和电脑,打开电源,点击“Load”按钮,可观察到LED灯的闪烁。