STM32建工程详细方法步骤.docx

上传人:b****3 文档编号:24816278 上传时间:2023-06-01 格式:DOCX 页数:27 大小:426.45KB
下载 相关 举报
STM32建工程详细方法步骤.docx_第1页
第1页 / 共27页
STM32建工程详细方法步骤.docx_第2页
第2页 / 共27页
STM32建工程详细方法步骤.docx_第3页
第3页 / 共27页
STM32建工程详细方法步骤.docx_第4页
第4页 / 共27页
STM32建工程详细方法步骤.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

STM32建工程详细方法步骤.docx

《STM32建工程详细方法步骤.docx》由会员分享,可在线阅读,更多相关《STM32建工程详细方法步骤.docx(27页珍藏版)》请在冰豆网上搜索。

STM32建工程详细方法步骤.docx

STM32建工程详细方法步骤

1、首先找到ST官方最新版本的固件库:

STM32F10x_StdPeriph_Lib_V3.5.0

STM32F10x_StdPenph_Ub_V3.5.0

文件实

2、新建一个工程文件夹:

比如led工程文件夹

3、在led工程文件夹中新建5个文件夹:

COREHARDWARESTM32F10x_FWL、

SYSTEMUSER

COR用来存放启动文件等

HARDWARE来存放各种硬件驱动代码

STM32F10xFWLi文件夹顾名思义用来存放ST官方提供的库函数源码文件

SYSTEM文件夹下包含了delay、sys、usart等三个文件夹。

分别包含了delay.c、sys.c、usart.c及其头文件delay.h、sys.h、usart.h

USER用来存放我们主函数文件main.c,以及其他包括system_stm32f10x.c等

4、将固件库包里面相关的启动文件复制到我们的工程目录COR之下

打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下面,将文件core_cm3.c和文件core_cm3.h复制到COR下面去。

然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,将里面startup_stm32f10x_md.s、startup_stm32f10x_ld.s、startup_stm32f10x_hd复制到COREF面。

这里我们解释一下,其实我们只用到arm目录下面的startup_stm32f10x_md.s文件,这个文件是针对中等容量芯片的启动文件。

其他两个主要的为startup_stm32f10x_ld.s为小容量,startup_stm32f10x_hd.s为大容量芯片的

启动文件。

这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户。

现在看看我们的CORE文件夹下面的文件:

5、将官方的固件库包里的源码文件复制到我们的工程目录STM32F10x_FWLi之

下。

打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,将目录下面的src,inc文件夹copy到我们刚才建立的STM32F10x_FWLib文件夹下面。

src存放的是固件库的.c文件,inc存放的是对应的.h文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c文件和一

个.h头文件。

现在看看我们的STM32F10XFWLi文件夹下面的文件:

辑iIn苗」的垃・Ird■SIM12FI.(k_FWlib»

i15

IHC

电应*si*治中孑

文徉(F)ME]ISMIM(T1OBE(H)

5、将官方的固件库包里的源码文件复制到我们的工程目录USER之下。

打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录

STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的USER目录之下。

然后将

STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER目录下。

然后在USER目录下创建两个文件夹:

obj、list保存工程编译产生的文件

新建工程

打开Keil软件(这里用的是Keil4.10),点击Keil的菜单:

Project->New

UvisionProject

IWMvfW">*ihIMiMl哼■「•f

|iUnmpsMWsiEW命jw场叫.ZHuuitiHiMm

l“m哺iafl.Mi"JMhltouf

JyQ.f94#^>A*4JTI|qp^pifqli^Ac.lta^Tiii^-j-y^j

*&"F*nJ«f|4lMl£aipBv4nMri^

fvAlF*iftlWifff

■rwrf«#OLlMflMMIlR7

FCkfM^iHB*・hum电4MiH0riB■»!

■■■*

t&dhv*i*^MliiWmwHsTvWfIhwwriMMv也MOfta

圍弊•.了尊•1■

r十,ur^140^vvunMn-w^Ht■■■WfaaiW

利"

liMdr"\

然后将目录定位到刚才建立的文件夹工程文件夹led之下,然后双击进入到

USER目录,我们的工程文件就都保存到USER文件夹下面。

工程命名为led,点

击保存

 

接下来会出现一个选择Device的界面,就是选择我们的芯片型号,这里我们定

位到STMicroelectronics下面的STM32F103RB(对我们的mini板子是这个型

号,如果是其他芯片,请选择对应的型号即可)。

SelectDeviceforTargetTarget

CPU

\fendor:

STMtcroetectfomei

Device:

STM32F103RB

ToohfltARM

Dat日base

□STM32F103R4

£3STM32F103RG

□STM32F1G3RB

STM32F103RB

□STM32FW3RC

□STM32F103RD

□£丁閘32FW3RE

□STM32F103RF

□STM32F103RG

□STM32F103T4

□STM32F103T6

□STM32F103T3

□STM32FW3TB

Description:

ARM324»tCortex^McrocofitfDler.TWHz.12ac8FWi.20kBSRAMb-PLL,EmbMdedIntemaiRC8MHzard3iHz.iReai-Tmedock”

bleatedIntemptControler,PowerSavingModes.JTAGandSWD.

3Synch.1Sb«TimerswihhputCapture.OlputComp^eandPWMrfrchAdvancedHner.21&b*WatchdogTktw.Sysl+ckTimer,

2SPL212C,3U5ART,USB20Fu3iSpwdkxerface,CAN2DBtorve.

212-bt16

Cuieel

 

弹出对话框“CopySTM32StartupCodetoproject….”,询问是否添加启动

代码到我们的工程中,这里我们选择“否”,因为我们使用的ST固件库文件已

经包含了启动文件

 

我们回到USER目录下面,可以看到工程建立了:

2U①uodEOo①6eue|/\|這理〈La)6」e_L扫<躍糕

 

5S“咖1

 

ProjectTargets一栏,我们将Target名字修改为led,然后在Groups一栏删掉一个,建立5个Groups:

COREUSERFWLIBHARDWARESYSTEM点击OK.可以

看到我们的Target名字以及Groups情况

 

日■号led

E-CJCORE

由USER

由仁JFWUB

SHARDWARE

S-QSYSTEM

F面我们往Group里面添加我们需要的文件这里第一步我们选择FWLIB然后点

击右边的AddFiles,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,

将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件

Components,EnvironmentandBooks

ProjectComp

Folions[Books

□X录毎

[core

[user

Rea:

X

£

mracc

stm32f1{k_gpio.c5tm32flQK_(TC.cstm32fICkjjsartcstm32J1&c_adc.c5tm32f1&cJ)kpc戟can.c

«m32f1(k_cec.c5trnJ2fl&c_crc.c3tm32l(k_dKc«m32f1tk^dbgmcu.c

strh32fiCk^xticstm32fl0k"flashcstm32flQK」smucStm32f1tjcj2tc$tm32fItkcstm32fIQkjjwt.c

stm32f1{bc_rtCJC

气會帶危口—■■

*-

11™—■—J—"—■—L—8—1r«,I

Add伽

OK

CviC*l

H«lp

用同样的方法,将Groups定位到CORESUSEF下面,添加需要的文件。

这里我

们的COR下面需要添加的文件为core_cm3.c,startup_stm32f10x_md.s,USER

目录下面需要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c.这

样我们需要添加的文件已经添加到我们的工程中去了,最后点击OK回到工程

主界面

Components.Environment«ndBocks

ProjectCo*p4h«nts|Foldtn/E^tmtiont|Booki

 

8RE

USERFWLIBHARDWARESYSTEM

FjebTarget:

/X4*Gnot<»

SetasCuTcfitTarget

AddF^n

Cancel

Help

 

 

Project4画

二mCORE

[由…闔core_cm3.c

L-[?

jstartup_stm32fl(bc_md自6USER

十迪main丄

由園stm32flO)(_it.c

+蜀system_stm32fLOxx

冲曰FWUB

I申迪miscx

田…蜀stm32(10x_gpio,c

+1国stm32flOx_rcc,c

Fl•匮istm32flOx_U5art,c

E£JHARDWARE

SQSYSTEM

F面我们要告诉MDK在哪些路径之下搜索相应的文件。

回到工程主菜单,点击

Project-->OptionsforTarget“Targetl”或者直接点击“魔术棒”出来一个菜单,然后点击c/c++选项.然后点击IneludePaths右边的按钮。

path一定要定

出一个添加path的对话框,然后我们将图上面的3个目录添加进去。

记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得位到最后一级子目录。

然后点击0K.

▼22•&aim

JI**1*

inelendif/

pmIT_CSSbeITPL

ifndef

•@{

Hr/

SetupCompilerIncludePaths:

LJX

More

..\STM32FKk_FWLjb\inc

XUSER

AHARDWARE>ted

ASYSTEMXdeJay.ASYSTEMXsys

'„\SYSTEM\udrt

OKCancel

同样点击魔术棒,进入配置菜单,选择Output。

然后勾上下三个选项。

其中

CreateHEXfile是编译生成hex文件,BrowserInformation是可以查看变量和函数定义点击进入SelectFolderofObjects…选择USER下的obj目录保存编译所生成的目标文件

*-t-

Jitd.h[3rtw32n&vtth

6>A

OpiiohiforTagHled'

h

Zr|C/C«|Au|Lihktt\D«ld<|Vuliliti|

|]

HffiZEBcTe

iiJSjqwxtorFolrfff

>wi««|TirplLillig

ntmain

dela^

LED」while

广GeflEeUbrwyLiB

f*1(147

ccre/mi^rfcor#.

*.deliyjcri

牺日碣*

2D15/S/iO17Xk

201S/3/SOV^t

JD!

5/a/iO17«?

Ci5/V5017XX-

IW

OE

di

1

同样点击魔术棒,进入配置菜单,选择Listing,点击进入SelectFolderof

Objects…选择USER下的obj目录保存编译所生成的列表文件

Optionsforkd'

D«vic«'Twt*iIOilput[Wi雨~|lf»*r|C/C**虹・:

Li必苗|,巩Ji切“;

*@bri4

*&pa“

*®ret\;

tmain

dela^LED_I

Whll

Seted:

Foidterforb<«w

VJwnMfiihnfl-jl'it

7^nu^Wwic*

厂CPrtcnnuorLfltAqLrf「1

 

接下来编译工程,会发现出现错误,双击第一个错误,然后会自动定位到文件stm32f10x.h中出错的地方,可以看到代码:

#if!

defined(STM32F10X_LD)&&!

defined(STM32F10X_LD_VL)&&!

defined(STM32F10X_MD&&!

defined(STM32F10X_MD_VL&&!

defined(STM32F10X_HD)

&&defined(STM32F10X_HD_VL)&&!

defined(STM32F10X_XL)&&!

defined(STM32F10X_CL)

#error"PleaseselectfirstthetargetSTM32F10xdeviceusedinyour

application(instm32f10x.hfile)"

#endif

#if!

definedUSESTDPERIPHDRIVER

这是因为3.5版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以

我们需要配置一个全局的宏定义变量。

按照步骤16,定位到C/C++界面,然后

copy“STM32F10X_MD,USE_STDPERIPH_DRlVEFDefine里面。

这里解释一下,如果你用的是大容量那么STM32F10X_MD改为STM32F10X_HD

小容量修改为STM32F10X_LD然后点击0K

OptionsforTjrgrtled

 

D+vict|\OutputLliIim

C/C*+g

[Ljnktr|百

LanguageCodeGenerabon

 

Optmtatoo|Level0(-00)勺OptingforTune厂SpitSadandStoreMukipJe厂OneELFSecbonperRmcbon

r餉CtANSIt

厂BnumCort*创旳aysE

厂PlainQiara&gned

rRe«iO^PosiwfcxJeperx>ertr*Re*d-WftePosibcnbrnfeperxE

IndudePaths毗Cortrotjcortrvl

strt-kg

「WRE\STM32FlK.FWLjt>AllSERHARDWARE^XSYSTEM^elayl\SYSTEM^|

<-cpuCtft&M3-00COREI.STM32F10xFY/bbocIUSER4

VHARDWAREWtXSYSTEKMe^M,ASYSTEH\4y*4..\SYSTEM\uwt-I~D:

\PW)9wnFfeaMM

OKCan?

«lI.Dvfvulti

H*lp

 

 

这次在编译之前,我们记得打开工程USURF面的main.c,在删除main文件中

暂时不需要的头文件、宏定义、函数等

«l

可以看到生成了hex文件在USER目录下的obj文件夹中,这个文件我们用

mcuisp下载至Umcu即可

Ft^ELFfnM4U*Xifkl*...

FwIriM■Avpnfl♦曲“aP^nvMiaiifWh1—lJ“*Wp

:

iww

-打mra”biJw

J],*|LMI&L-M!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1