历史上的今天
今天是:2024年09月24日(星期二)
2019年09月24日 | 使用MDK创建stm32 库函数工程简单教程
2019-09-24 来源:eefocus
一. 需要准备的资料及环境:
1.STM32固件库,我们使用的固件库为STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下载
2.MDK开发环境(我们使用的版本为MDK4.7A)。
二. 新建工程
1.打开MDK
,然后选择菜单 Project->Close Project,关掉已存在的工程!这样整个MDK就是一个空的了,接下来我们将建立工程。
2.在建立工程之前,建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里我们建立一个文件夹为: STM32_IAP.在该文件夹下再创建CORE、OBJ、STM32F10x_FWLib、USER等文件夹,USER用来保存工程,CORE用来存放核心文件和启动,OBJ是用来存放编译过程文件以及 hex 文件,STM32F10x_FWLib 文件夹用来存放ST 官方提供的库函数源码文 官方提供的库函数源码文 官方提供的库函数源码文 官方提供的库函数源码件。
3.点击Keil的菜单:Project –>New Uvision Project ,然后将目录定位到刚才建立的文件夹STM32_IAP之下,把工程文件保存到USER文件夹下面。工程命名为IAP-Bootloader ,点击保存

4.接下来会出现一个选择Device的界面,我们选择STM32F103C8(如果是其他芯片,请选择对应的型号)。

5.弹出对话框“ Copy STM32 Startup Code to project ….”,询问是否添加启动代码到工程中,选择“否”,”,因为使用的 ST 固件库文件已经包含了启动文件。

6.下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。
打开官方固件库包,定位到我们之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver下面,将目录下面的src,inc文件夹copy到我们刚才建立的STM32F10x_FWLib文件夹下面。src存放的是固件库的.c文件,inc存放的是对应的.h文件。
7.将固件库包里面相关的启动文件复制到我们的工程目录CORE之下。 打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport下面,将文件core_cm3.c和文件core_cm3.h 复制到CORE下面去。然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm下面,将里面所有的文件同样复制到CORE下面
8.定位到目录:STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x,将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下面的4个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER目录下面。
9.前面的步骤,我们将需要的固件库相关文件复制到工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击Target1,选择Manage Components
10.Project Targets一栏,我们将Target名字修改为IAP-Bootloader,然后在Groups一栏删掉一个,建立三个Groups:USER,CORE,FWLIB.点击OK.可以看到我们的Target名字以及Groups情况。

11.往Group里面添加我们需要的文件。我们按照步骤10的方法, 右键点击点击IAP-Bootloader,选择选择Manage Components.然后选择需要添加文件的Group,这里第一步我们选择FWLIB,然后点击右边的Add Files,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,选择需要的文件,然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件。
12.用同样的方法,将Groups定位到CORE和USER下面,添加需要的文件。这里我们的CORE下面需要添加的文件为core_cm3.c,startup_stm32f10x_md.s,USER目录下面需要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c.这样我们需要添加的文件已经添加到我们的工程中去了,最后点击OK,回到工程主界面。

13.点击魔术棒
,出来一个菜单,然后点击 c/c++选项.然后点击Include Paths右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK.

14.配置一个全局的宏定义变量。按照步骤13,定位到c/c++界面,然后copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。这里解释一下,如果你用的是大容量那么STM32F10X_MD修改为STM32F10X_HD,小容量修改为STM32F10X_LD。

15.配置Output选项。定位到Output界面,点击Select Folder For Obiects...将目标文件选择到OBJ文件夹下。然后勾上下三个选项。其中Create HEX file是编译生成hex文件,Browser Information是可以查看变量和函数定义

16..配置Debug选项。定位到Debug界面,选择ST-Link Debugger(按实际用的工具选择),勾选Use,点击右边的Setting选项,在弹出的Cortex-MTarget Driver Setup窗口中选择SW(按实际选择),选择确定。

17.配置Utilities选项。(1)定位到Utilities界面;(2)选择ST-Link Debugger(按实际用的工具选择);(3)点击右边的Setting选项;(4)在弹出的Cortex-MTarget Driver Setup窗口按下图红框4选择;(5)点击下方ADD;(6)在弹出的Add Flash Programming Algorithm菜单中选择STM32F10X Med-density Flash(按实际对应芯片选择);(7)选择完后点击Add;(8)选择确定,回到上一菜单后再次选择确定,回到主界面。

18.编写简单main函数,点击
进行编译,编译完成后在OBJ文件夹中生成.hex文件

19.用ST Link将MCU与PC连接好后,点击
将.hex文件下载到MCU中。
史海拾趣
|
s3c2410大多移植2.4内核或是uclinux, 2440以后基本都是2.6内核,请问内核版本选择跟芯片有关吗? 网上看到有人在2410板子上移植成功2.6内核, 请问这样的配合合理吗? 会不会有在奔3机子上装winXP这种感觉呢?… 查看全部问答> |
|
四、硅谷模式不适全中国环境 很多从硅谷回国的海归在创业失败后,都会说,在中国运营公司比在硅谷要难。笔者在2005年和2006年认识了很多的回国创业的海归人士,当年都是雄心勃勃,结果,几年下来,现在大都已经宣布公司倒闭,有的回到美国去了,有 ...… 查看全部问答> |
|
ADC10_B只有一个ADC10MEM0,也就是每次只能转化一个通道数据,如果我想同时转化多个通道的数据该怎么办呢? 我原本的想法有两个: 第一,采用Single-channel, single-conversion,每次转换好一个通道后,写指令改通道,再转换, ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 13:12 编辑 TI的收发集成方案请参考下面连接.AFE7225,TRF3720,TRF3711 ti./solution/femto_base_station … 查看全部问答> |
|
想做一个对共阴数码管和独立按键的操控,没想到输出的共阴数码管的信号最后是乱码……也不动,按键按了也不变,这个程序也没做完,我看把基本的加法实现了减法应该也能实现(从0+到99),但是没想到遇到了这样的问题,请大神帮忙看看代码有什么问题 ...… 查看全部问答> |
|
哪个跑过TI DEMO2540 。。就是那个最简单的测试程序 我现在USB DONGLE 端口 写00X0028 和1 或者 2 的时候蜂蜜器叫的方式不一样,,这个 00X0028 和1 或者 2 为什么是这个数字… 查看全部问答> |




