使用STM32库建立keil-4工程详细步骤.docx
STM32运用外设库建立kei1.工程新建文件夹取名为自己想要的名称(如GP1.O)JGno1.打开文件,建立如下的文件结构:2,打开Pretjecb建立如下文件;,JP:5nGPI0Project3、打开下栽来的外设驱动库如下:JJt1132H<xStustUkM$05,打开卜载的飘动库卜的Project文件.打开STM32F10x_StdPeriPh-Examp1.es,找到我们须4,把1.ibraries的下的两个文件(CMSIS和STM32FIOx_S»dPeripb_Driver)«贝到GPIO文件下:UFxsnwio要的例程,JjigpioJtftf1.SAU3CJacAA1.j1111t<XASiJK5JjwtaA国ctJ125,也个NaO3ROE(Jm"ckjT(Jon少>nt<*wmwnA*k*",*,DFUaU1.6,打开GP1.O文件夹JTAG-Rencp7、打开IOTogg1.c,更制除了gdcmic.txt之外的文件到工程下的USCr文件.c3a11!3G111.?一、3Q2OI9UE.、h料®_CJHff1._hjMtvT“CJ!EHBa1.红制好之后:,二10任3E1."网浮海回Xfratw8、到此,打算工作完毕.©w*F-r啖9、打开KE1.1.,新建工程阳|Vision!EkE1.二UojectFhB¾FPheraIteSVCS的do%HeiP:ect.依,Mdo-Pro)ectWorkspace.QPenpToACtQoseProct三×portSe1.ectDe¾ceforTarget.RemoveItemOUbOnSC1.eantargetdj£dtargettxiW以targetfsBatBuid.Trans1.ate.10.保存在Pmj81文件夹下面,取名为自己的名字,我取名为GP1.O.II.选定自己运用的芯片.点击ok.此时会跳出这个对框柩,选择否:13、14、工程建好后是这样的幽F宜皿公在工程上右键选择MangeContpoiMs如下:PVsnon4*St2erojectRcPhQebugPet1.Phefafc100fcSVCS)ftn尽AIuI3*1E1.U2U'3><tAhM7ebWdtv9etftesQuMtargetTfinstoteFIeSWbdCpenUetHeOpenMapFi1.eAidGroup.IIReeoeitemManage£ocnponente.,3ShowInckxieFDependenoesAJdOutput15、建立如下组16.在USCr卜面添加刚才方法哦USCT卜的C文件:roupUserSe查找范S1.Q),)UKr三t<*32t1.×-t.c三y三tctn32f1.xc文件名J):PJnainc,*三tn32f1.x-it.c*ystn-st32f1.0xc*文件英至tt):CSourcefi1.(Kc)j点击Add17、增加StdPcriph-Drivcr的文件.在自己工程StdPcriph.Drivcr下面的下面的src文件如下:(说明;只须要增加自己须要的,我这里全部添加了);rouprStdPeriphDriverr?-.1.tJ:二,二:-.r.-1.t1.:<j-r.,'f1.:'.e'Kff1.z-r,:,门1Kst<2f1.x.dac三tn32f1.x-dbcncucz.rc1.,t1.:1.<:HBz.r432t1.0-ot:cHstr.32f1.0x_n4shc1.str32f10-tvcc.、1八32门。11ocKx*.n32t1.Oxx2ccKstn32f1.x-vdc,stn32f1.x-pvr.c三tn32f1.xrcc.c三t1132f1.x-rtc.cstn32f1.x-sdiostn32f1.x-spicst32f1.0xt*.c三tn32f1.x-,u三att.ctn32f1.xvvdrcIAdd文件名®):pfsc*s>32f1.x.tdcc*st1132f1.0x3)c*stf»32f10x.can文件¢):ICSoxxrce£e(*.C)在CMS1.S卜增加文件:CMS1.S文件下的CM3的CoreSupport的文件19、在StartUp卜,面增加位于cws1.s'CM3DevieoSuppo吧STSM32F10x"tartupare卜的文2(h选择自己芯片对应的文件.我用的是其次种StartUP_$1.m32f1.OxJk1.s21、增加完文件后工程如下现在左犍点击选中GP1.o工程名.在点击才沏选择OP1.iOnTOrTargCt4GP1.O'来配置工程22、在CIrtrHrt页面下点击Se1.ectFo1.derObjects,选择我<11在PrOjeC1.书目下的Obj文件23.勾选长生hex文件.DeViCe1.Tu-(<tOutput1.istin(VserSefeOFoIdeHaQbrch.|"Dgd1.eExecUJabIeAObjVest,PebUf1.IMOanabon凌立HEX文件7Br<¾jpeIn1.ocmation24、在1.isting页面下点击Se1.ectFo1.derObiecisfor1.istings.>选择我们在PrOjeCI书目下的1.ist文件在CC+页面下配置,这是预编译的定义:Define中写入USE_STDPERIPH_DR1.VER,STM32F1OX_HD其中第一个"USE_STDPERIPF1.DR1.VER”定义了运用外设阵,定义此项会包含*_Conf.h文件,从而使用外设库:而其次个“STM32FIOXID”从字面理解校当地定义了大等容M的STM32MCU.STM32FIOX-MD则为中等容盘等.25、现在设置Inc1.udepaihs:OKCgCaDfau1.ts设湿如下的头文件路径:点击Ok,分别为:AUser.CMSIS'M3'torcSupport.CMSISCM3DcviccSupp<rtSTSTM32FI0x.'STM32F1Ox-StdPeripkDriveAinc26、 设置完毕,确定。k,ok.结束。27、 由于运用的是都是拷贝的东西.在manx下面我们有些东西没有用到.须要做竹定的修该,改成你自己须要的例程就可以了.我的文件脩改如下 briefHdinProgrd0 praHone Oretua1.Nonp/intRain(void)(f<Atthisstagethemicrocontro1.1.erc1.ocksettingisa1.readyconfigured,thisisdonethrouqSystenInitOFunctiont1.chIsca1.1.edfrostartupfi1.*(st4rtup-st32F1dx_xx.s)beforetobranchtoapp1.icationMin.VorpconFigurrthedefau1.tsettingofSycton1.nitOFunction,refertosystrnstn32F10×.cFi1.e/Configurea1.1.unusedGPIOportpinsinAna1.oqinputnod。(f1.oatinginputtriggerOFF),thisui1.1.reducethepouprcnsaptionandincreasethe<1.FuiceinnunityagainstENI/CNC/RCC>PB2PrriphC1.ockCnd(RCCAPB2Periph-CPI0RCC_APB2PrriphGP!OBRCC_APB2Periph_GPI0CRCC_AP02Prriph_GP100RCC_APB2Periph_GP!0E.CHAi); PI0,InitStructure.CP10,Pin-CPIO-Pin>1.1.; P!O_1.nitStructur<».CPIO_Hodr-CPIO_Nodr_A1.M:GPIO1.nit(CP!UA.MPIoTnitStructurr);GP1.OIniMGP1.OB.KPIQInitStructure);GPIoInit(GF!OC.(GPIO_InitStructure);GPIOInit(GPIOP,MPIOInitStructure);CPIO.Init(CPIOf.ftCPIO.InitStructure);RCC_APB2PrriphC1.ockCnd(RCC_APB2Prriph_CPIUARCC-APB2PrripCPiOBRCCAPB2Periph_CPI0CRCC_AP82Prriph_CP!0DRCC_APB2Periph_GPI0t,0ISA81.C);whi1.e(1)Insertde1.ay/De1.ay(OxArFFF);*8*号*4*4*4*号*y*8*号*号*8*y*c*一4一4一4*8*号*号4*4*4«:44:8*号*8*8*«4«*号*8*多*8才 ti1.cGPIQrIO1.bgg1.cmain.c au1.horMCDApp1.icationTeam da1.e1152O1.O briefMainprogrambody.*衾*衾*分*衾*:今*«:*«:*衾*衾*京*9t*:衾*分*京*«:衾*分*衾*!衾京*衾*衾*!分*coPy* THEPRESENTFIRMWAREWHICHISFORGU