5加载stm32 keil_Keil5-建立第一个STM32工程

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:22   2829   0

此致:特别感谢作者Lomo-chen所写的文章给我的帮助,我尝试做了一下,成功了,今天整理一下。

一、建立文件夹:

1、在桌面或其他盘建立一个文件夹,此处名称为Test,用来存放工程程序。

2、在Test文件夹下,建立User、Driver、List、Output三个文件夹。

-- User (存放main函数文件)

-- Driver (存放驱动函数文件)

-- List (存放编译文件)

-- Output (存放输出文件)

二、创建工程

1、打开Keil软件,选择Project ---> New μVision Project...--> 输入文件名 TestDemo --> 点击保存。弹出如下:

2、选择自己需要的芯片型号,此处为STM32F103C8,点击OK,自动弹出如下:

3、在对应选项中选择所需的必选项,即勾选:

-- CMSIS 下 的 CORE 项

-- Device 下的 Startup 项

-- Stdperiph Driver 下的 RCC 和 framework 项

剩下的外设驱动先不添加,在程序编写的时候,按需求添加。(为了方便,大家还是在这个添加最好,省的麻烦)

4、点击界面中魔术棒右边的按钮,即如下按钮:

5、点击之后,弹出的窗口中,可以修该工程名,并且可对程序进行分组分类:

-- Project Targets 工程名,默认为Target 1,此处修改为 FenTest

-- Groups 分组分类,默认为 Source Group 1 ,此处修改为四个文件:User、Core、Driver、Config

6、点击OK,界面显示如下:

-- User 只存放 main.c 文件(说是这么说,其实随便啦~)

-- Core 存放各种中断处理函数

-- Config 用来存放MCU的外设配置初始化函数

-- Driver 用来存放MCU和其他芯片的驱动函数

7、 鼠标点击User,右键选择Add New Item to Group ‘User’:

8、依次添加各个目录下所需的.c文件和.h文件

9、点击魔术棒,点击Output选项,勾选Create HEX File ,

点击Select Folder for Objects 选项,在弹出的界面中设置好相应文件的输出路径 Output:

10、在C/C++ 选项中,如下图填写,并将相应文件包含进来:

注意:Define项不用填写任何东西。include paths 项一定要到STM32F103C8这个子目录,即:

.\Driver;.\User;.\RTE;.\RTE\Device;.\RTE\Device\STM32F103C8

11、上述过程只是创建了一个框架,接下来,我们创建文件:

(1)上面说了在user创建了main.c和main.h文件

(2)在Config文件夹下创建config.c和config.h文件

(3)在main.c文件中,包含 #include “config.h” #include “stm32f103x.h”

(4)打开config.h,添加以下代码:

#ifndef __CONFIG_H#define __CONFIG_H#include"stm32f10x.h" //记得添加此头文件,因为config.c用到GPIO相关函数等

void LED_GPIO_Config(void);voidDelay_ms(u16 time);#endif

(5)打开config.c文件,添加以下代码:

#include "config.h"

/*************** 配置GPIO*******************/

void LED_GPIO_Config(void)

{//配置PC13引脚

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOC,&GPIO_InitStructure);

GPIO_SetBits(GPIOC, GPIO_Pin_13 );//配置PB14引脚

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_SetBits(GPIOB, GPIO_Pin_14 );

}//毫秒级延时函数

voidDelay_ms(u16 time)

{

u16 i=0;while(time--)

{

i=12000;while(i--);

}

}

(6)在main.c文件中添加如下代码:

#include "config.h"#include"stm32f10x.h"

intmain()

{//初始化GPIO

LED_GPIO_Config();while (1){

GPIO_ResetBits(GPIOC,GPIO_Pin_13);//开

Delay_ms(800);

GPIO_SetBits(GPIOC,GPIO_Pin_13);//关

Delay_ms(800);

GPIO_ResetBits(GPIOB,GPIO_Pin_14);//开

Delay_ms(800);

GPIO_SetBits(GPIOB,GPIO_Pin_14);//关

Delay_ms(800);

}

}

(6)忘了一点,因为前面我们没有在 Stdperiph Driver项中添加 GPIO外设驱动,此处要添加:

(7)保存,点击编译。 这时候:

rte_components.h会自动包含进项目

stm32f10x_config.h也不用手动修改。 (全自动,非常方便!)

12、烧录文件:

(1)此处使用ST-Link V2下载器

(2)点击魔术棒,点击Debug,在use中选择ST-Link Debugger

(3)点击旁边的Setting,ort 选择 sw

(4)点击Flash Download,点击Add,选择STM32F10x Med-density Flash 128K .....

(5)点击下载图标,即可下载

13、观察开发板的gpio口的led状态:

现象:PC13 PB14有规律的依次闪烁。

这样就成功搭建好工程,并且点亮LED灯!

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP