[STM32从0开始]STM32F10x系列工程创建与最小系统板板载LED PC13使用,详细又简单

//需要C语言基础

引言

这个系列开始记录我的STM32学习历程,我觉得每一个人想要入门一个东西,最简单也最重要的就是动手做起来,最难的也是动手做,难在:做什么?怎么做?

在开始让单片机做到我们想让他做的事情之前,我们需要先了解他,请各位自行百度手中的单片机型号,我的是STM32F103系列。本问仅讲步骤,所用到的文件与代码是什么用途请自行百度了解。

预备工程文件

关于stm32相关工程,你可以使用店铺给的例程,也可以在网上搜索官网例程,在这里,我从网上整理了一套简单实用的基础工程创建,学习工程文件的创建、导入、引用。

1、下载相关文件

从官网下载你单片机的相关库文件,我的是STM32F103系列,所以我在官网下载了STM32F10x_StdPeriph_Lib_V3.5.0,以下内容我们并不是全部都需要,STM32F10x_StdPeriph_Lib_V3.5.0完整内容如下:

2、创建工程目录

在任意位置创建Test目录,在Test目录下创建CMSIS,Library,Start,User这4个目录,看起来就像下面这样:

3、复制需要的文件

在你的固件库中找到需要的文件,复制到我们创建好的相应文件夹中,我的是STM32F10x_StdPeriph_Lib_V3.5.0,在\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport目录下有core_cm3.c与.h文件,将其复制到我们创建的CMSIS中。

然后在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中将stm32f10x.h、system_stm32f10x.c与.h文件复制到CMSIS文件夹中。

在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下有inc与src两个文件夹,我们将其复制到Library文件夹中

在STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm中有以下文件,我们将其完整复制到创建的Start文件夹中

我们回到库的最开始,在\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中找到stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件,将其复制到所创建的User目录下,在这个步骤中,main.c文件可任由你选择是否复制,我这边选择是

创建工程

当工程文件都按位置准备妥当后,你的目录看起来应该是这样,确定完成后,我们开始在keil中创建工程。

在keil中创建工程

在keil中新建工程,将其保存在刚刚创建的Test目录下,随便取个名字。

然后会要你选择芯片,这里直接输入你芯片的关键字,点击OK

这一步无论是ok还是cancel都行

正确创建后你的左边会出现如下文件

点击工具栏的小品如,将你的Source Group 1删除,新建4个目录,新建的目录名要和我们之前在预备工作中创建的4个文件夹名一致,即CMSIS、Library、Start、User。

我们选择第一个CMSIS,在右边下方单击Add Files...按钮,添加我们之前存好的文件

然后选择第二个Library,添加src文件夹中的所有.c文件,步骤和上面一样,添加完成后是这样的

在Start中只需要添加一个md.s结尾的文件

User中则添加in.h以外的文件。

添加完后你的工程如红框中所示,但是并没有结束,还需要进一步操作

设置工程文件路径

在工具栏中点击魔术棒,在OutPut标签下勾选编译生成Hex文件,这个文件非常重要

在C/C++标签中,找到Define,输入‘USE_STDPERIPH_DRIVER,STM32F10x_MD’,然后在Include Paths中选择之前创建的4个文件夹的路径,重复下面步骤4次

其中,Library要具体到src与inc文件夹

最后勾选C99 Mode,完成后看起来像下面这样,点击Ok,工程创建完成。

点亮板载PC13

工程创建完成后,即可开始编写代码了。我的习惯是在main.c中删除所有内容重新编写,如果你编译出现了报错,请回顾以上步骤。

#include "stm32f10x.h"



int main()
{
	while(1)
	{
		
	}
}

编译完成后,我们将测试代码写入到main中,在魔术棒里debug标签下设置你的下载模式,如果你没有可直接使用的下载器,可以直接选择之前生成的hex文件下载。我的是Stlink V2,这里我设置如下。

#include "stm32f10x.h"


void time(int t)
{
	int i;
	while(t--)
	{
		for(i=0;i<120;i++);
	}
}
int main()
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	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);
	
	while(1)
	{
		time(55555);
		GPIO_ResetBits(GPIOC,GPIO_Pin_13);
		time(55555);
		GPIO_SetBits(GPIOC,GPIO_Pin_13);
	}
}

最后

我写这篇文章的目的是为了记录我的学习历程,不是为了教育谁,也不是为了教有缘看到的你们,如果你们平和的和我交流我很开心回复你们,如果有脾气暴躁张嘴就来的,不好意思--

不好的评论我会删

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Azhuo9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值