3、STM32F103建工程

1、开发环境安装步骤:
①安装MDK5.14。
安装目录不能有中文或者特殊字符,可以在D盘新建一个MDK,安装在此文件夹中。Pack Installer界面关闭即可。
②keil破解,file–license management复制CID到破解机,选择ARM后点击generate,复制LIC码粘贴在keil的LIC框,点击add lic,完成破解。
③安装STM32F1支持包。
keil.STM32F1xx_DFP.1.0.5双击,支持包可以自动定位到MDK的安装目录。
keil5是软件和支持包分别安装,keil4软件和支持包在一起,所以比较大。
点击Pack Installer,可以查看安装的支持包。
④CH340驱动安装,找到驱动的steup双节安装。
⑤JLINK驱动安装,找到setup_ jlink_v490双击安装。

2、固件库介绍。
ST官网下载 STM32F10x_StdPeriph_Lib_V3.5.0。
Libraries文件夹下CMSIS和STM32F10x_StdPeriph_Driver目录,CMSIS目录下是启动文件,STM32F10x_StdPeriph_Driver目录是STM32固件源代码,src源文件source,inc头文件include。
Project文件夹下两个文件夹,STM32F10x_StdPeirph_Examples例程源码,STM32F10x_StdPeriph_Template工程模板。
Utilities文件夹下是官方评估板的一些源码,可以忽略。
主要文件介绍如下:
core_cm3.ccore_cm3.h是内核文件。
system_stm32f10x.csystem_stm32f10x.h设置系统及总线时钟。
stm32f10x.h是系统存储器定义申明以及包装内存操作。
startup_stm32f10x_hd.s是启动文件。
stm32f10x_it.cstm32f10x_it.h是用来编写中断服务函数。
stm32f10x_conf.h是配置文件,包含外设头文件。

3、新建STM32F1工程步骤。
①新建一个keil工程。
建立一个文件夹Template,project–new uvision project定位到Template,新建一个USER文件夹,工程名设置为Template保存在USER下面。
保存之后keil提示选择处理器,选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103ZET6,如下图:
3、STM32F103建工程_第1张图片
点击OK,提示添加组件,请选择cancel,如下图。
3、STM32F103建工程_第2张图片
②文件夹新建。
USER文件夹下面自动生成了listings和objects两个文件夹,存放编译过程产生的中间文件,删除listings和objects文件夹,Template文件夹新建OBJ文件夹,用来存放编译中间文件。Template文件夹新建CORE文件夹,用来存放核心文件和启动文件。Template文件夹新建STM32F10x_FWLib文件夹,用来存放ST官方的库函数源码文件。
③拷贝关键文件。
src和inc两个文件夹复制到STM32F10x_FWLib文件夹。
core_cm3.c、core_cm3.h、startup_stm32f10x_hd.s三个文件复制到CORE文件夹。
stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h三个文件复制到USER文件夹。
main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四个文件复制到USER文件夹。
④添加固件库到目录中。
Target1选中再单击改名为Template。
Template右键选择Manage Project Items。
添加三个Groups(USER、FWLIB、CORE),删除Source Group1。
每个Group中添加对应文件夹下面的.c函数。如下图:
3、STM32F103建工程_第3张图片
keil中点魔术棒–output–select folder for objects,如下图:
3、STM32F103建工程_第4张图片
⑤添加头文件。
编译,提示错误。需要添加头文件。
点击魔术棒–c/c++中,点击include paths,把USER、CORE、FWLIB中的头文件添加进来,path一定要定位到最后一级子目录。如下图:
3、STM32F103建工程_第5张图片
编译还是会提示错误,需要配置宏定义变量。
3.5版本的库函数在配置和选择外设的时候通过宏定义来选择,配置宏定义变量如下图:
3、STM32F103建工程_第6张图片
编辑没有提示错误,提示一个警告(main.c(33): warning: #1-D: last line of file ends without a newline)。①需要在main函数的最后添加新行,消除警告。
编译没有错误,通过JLINK下载程序,需要按下复位才可以正常运行。②魔术棒–setting选择J-LINK/J-TRACE Cortex之后点击setting,选择flash download,勾选reset and run,如下图:
3、STM32F103建工程_第7张图片
自己编写的延迟函数,太快。

void Delay(u32 count)
{
	u32 i = 0;
	for(;i

count为3 000 000时,延迟差不多是0.25s,72MHz主频。
1/72M*3000000=0.0417,0.25/0.0417≈5,说明一个i++和一个比较大约需要5个指令周期。
⑥添加 ALIENTEK提供的文件夹,添加库函数和头文件。
复制SYSTEM文件夹,如下图:
3、STM32F103建工程_第8张图片
添加库函数如下图:
3、STM32F103建工程_第9张图片
添加头文件如下图:
3、STM32F103建工程_第10张图片
Alientek提供的SYSTEM文件夹设置完成。

你可能感兴趣的:(STM32)