STM32F103C8T6工程创建过程(库函数版)——基于固件库(V3.5.0)(推荐)

1、在电脑上任意位置新建文件夹,命名为LEDProject,用来存放工程(文件夹名字好改,工程名称不好修改);

2、在MDK中,新建工程,给工程起名为Project,保存在我们之前新建的工程文件夹中(例如选择芯片为C8型号);

3、在工程文件夹下,新建Start文件夹,并将固件库中,STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的所有文件(共8个),全部复制到Start中,这些都是启动文件;

4、将固件库中,STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的3个文件,复制到Start中,这些都是外设和系统时钟;

5、将固件库中,STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的2个文件,复制到Start中,这些都是内核文件;

6、在MDK中,重命名Source Group1为Start,右击选择添加存在的文件到组项,将工程文件夹下的md.s添加到组中,将Start中剩余.c和.h全部添加到组中;

7、在MDK中添加Start下文件的路径,选择魔术棒,在CC++/include Paths下添加路径;

8、在工程文件夹下新建文件夹,命名为User,在MDK中,右击Target1,选择Add Group(添加组),并对新的组更名为User,在组名User上右击添加新文件,起名为main.c并保存在工程文件夹下的User文件夹中;

9、在main.c中,右击 / 插入头文件 / stm32f10x.h,并写入代码,完成编译;

#include "stm32f10x.h"                  // Device header
int main(void)
{
	while(1)
    {
        
    }
}

说明:工程建到这里,就是一个基于寄存器的模板;如果要基于标准库,还要继续添加库文件,完成后面的操作。

在扳手按钮中,设置一下UTF-8,防止在代码中,中文显示会出现乱码,并设置一个tab缩进为4个空格。(Colors & Fonts处可以修改字体大小)

连接C8T6和STLINK

在Use处设置STLINK,并在旁边的Settings设置复位后执行代码;

10、在工程文件夹下,新建文件夹Library,将固件库中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src下的所有文件复制到工程文件夹中的Library文件夹下,将固件库中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc下的所有文件复制到工程文件夹中的Library文件夹下。

11、在MDK中,Target1右击添加组,起名为Library,在Library组中加入工程文件夹下Library中所有的文件;

12、在固件库中,STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下,复制3个文件,到工程文件夹 / User文件夹下面;并在MDK中将3个文件也添加到User下面;

13、在MDK中,打开#include "stm32f10x.h"中的调用文件,滑倒最下面,复制 USE_STDPERIPH_DRIVER 文字;粘贴在魔术棒中,同时添加User、Library的路径;

14、在MDK中,调整文件位置,用三个箱子按钮,按照Start、Library、User的顺序调整;

15、库函数工程创建完毕,开始编写程序;

#include "stm32f10x.h"                  // Device header

int main(void)
{
	/*开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	//开启GPIOC的时钟
															//使用各个外设前必须开启时钟,否则对外设的操作无效
	
	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//GPIO模式,赋值为推挽输出模式
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;				//GPIO引脚,赋值为第13号引脚
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//GPIO速度,赋值为50MHz
	
	GPIO_Init(GPIOC, &GPIO_InitStructure);					//将赋值后的构体变量传递给GPIO_Init函数
															//函数内部会自动根据结构体的参数配置相应寄存器
															//实现GPIOC的初始化
	
	/*设置GPIO引脚的高低电平*/
	/*若不设置GPIO引脚的电平,则在GPIO初始化为推挽输出后,指定引脚默认输出低电平*/
//	GPIO_SetBits(GPIOC, GPIO_Pin_13);						//将PC13引脚设置为高电平
	GPIO_ResetBits(GPIOC, GPIO_Pin_13);						//将PC13引脚设置为低电平
	
	while (1)
	{
		
	}
}

16、结束

17、总结

(1)建立工程文件夹,Keil中新建工程,选择型号;

(2)工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹;

(3)工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里;

(4)工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹;

(5)工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER;

(6)工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run。

18、在工程文件夹下新建System文件夹,并将Delay.c和Delay.h两个文件复制在System文件夹下;在MDK中,打开三个箱子按钮,新建System,将Delay.c和Delay.h添加进来,改动顺序为Start、Library、System、User;在魔术棒/CC++中添加System的路径。在main.c中,写入#include“Delay.h”就能使用延时函数。

19、在工程文件夹下新建Hardware文件夹,并将Led.c和Led.h这类文件放在Hardware文件夹下;在MDK中,打开三个箱子按钮,新建Hardware,将Led.c和Led.h这类文件添加进来,改动顺序为Start、Library、System、Hardware、User;在魔术棒/CC++中添加Hardware的路径。在main.c中,写入#include“Led.h”就能调用Hardware的函数。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值