STM32使用Keil MDK新建工程详细教程

@TOCSTM32 keil5 MDK新建工程教程

STM32 keil5 MDK新建工程教程

这是根据B站江科大stm32教程,所整理的一篇如何新建一个stm32工程。本教程所需文件包源于B站江协科技

1、确定一级目录

确定一个文件路径,新建文件夹用于以后存放stm32工程。这里我新建了一个project文件夹作为stm32工程的一级目录。

2、打开keil新建工程

在上步中的一级目录下,新建文件夹作为该工程的存放目录,我新建为学习记录,并在该目录下设置工程名

新建好后,点击保存,将会弹出选择芯片

3、选择芯片

我使用的是STM32103C8T6

点击ok,将弹出快速新建工程小助手。直接叉掉

4、添加启动文件

上步完成后,打开工程所在文件夹,文件结构如下(keil新建工程后自动生成的)

新建Start文件夹(启动文件)
固件\\STM32F10x_StdPeriph_Lib_V3.5.0\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x\\startup\\arm该目录下的所有文件复制粘贴到Start文件夹下。

继续将 固件库\\STM32F10x_StdPeriph_Lib_V3.5.0\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\DeviceSupport\\ST\\STM32F10x 路径下的三个文件复制粘贴进Start文件夹下。


添加内核寄存器描述文件
固件库\\STM32F10x_StdPeriph_Lib_V3.5.0\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\CMSIS\\CM3\\CoreSupport 文件夹下的文件复制粘贴到Start中

最后Start内文件结构如下

5、载入工程

重命名组

按顺序单击进行重命名,为Start

载入启动文件


选择ALL FILES

按照该表参照自己的开发板的型号,选择启动文件,我这里选择后缀为md.s文件点击add

继续添加Start文件夹中的.c和.h文件,添加完成后点击Close,完成后如下(每个文件图标上都有一个小钥匙,代表只读,不能更改)

6、添加头文件路径

单击魔术棒,选择C/C++,点击Include Path后的三个点,双击空白出现三个点并单击,弹出文件选择弹窗,选择Start,单击选择该文件夹。

点击OK

7、编写主函数

为了让工程目录更为清晰,在该工程文件夹下,新建文件夹User

载入工程

改名为User

添加.c文件(main.c)

8、配置调试器等

用的什么选什么,我用的ST-Link
选中运行前自动重置,否则在每次上传完程序后都需要手动按复位键进行复位

9、寄存器开发执行

就可以在该文件下编写主函数,进行运行。注意到此为止仅可以进行寄存器开发

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC->APB2ENR = 0x00000010;
	GPIOC->CRH = 0x00300000;
	GPIOC->ODR = 0x00002000;
	
	while(1);
}	

结果

10、使用库函数进行开发

在工程目录下新建文件夹Library用于存放库函数

打开 固件库\\STM32F10x_StdPeriph_Lib_V3.5.0\\STM32F10x_StdPeriph_Lib_V3.5.0\\Libraries\\STM32F10x_StdPeriph_Driver 该路径

将inc和src文件夹复制粘贴至Library中

11、载入库函数至工程

同User的创建方法一致,新建组Library,将文件目录Library下inc和src中的所有文件添加进Library组

12、添加库函数配置文件和中断函数文件

复制粘贴 固件库\\STM32F10x_StdPeriph_Lib_V3.5.0\\STM32F10x_StdPeriph_Lib_V3.5.0\\Project\\STM32F10x_StdPeriph_Template 路径下的如图所示的三个文件至工程的User目录下

将该三个文件载入到工程中去

13、添加宏定义

此处有条件编译

需要对USE_STDPERIPH_DRIVER进行宏定义

14、设置头文件路径

将Library/inc路径与User路径设置到包含目录中去

15、尝试编译


编译成功,表示我们新建工程成功!!!!

16、使用库函数点亮小灯

#include "stm32f10x.h"                  // Device header

int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);
	
	while(1);
}

作者:羽码

物联沃分享整理
物联沃-IOTWORD物联网 » STM32使用Keil MDK新建工程详细教程

发表回复