使用STM32库建立keil4工程详细步骤.docx
- 文档编号:15058375
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:25
- 大小:582.98KB
使用STM32库建立keil4工程详细步骤.docx
《使用STM32库建立keil4工程详细步骤.docx》由会员分享,可在线阅读,更多相关《使用STM32库建立keil4工程详细步骤.docx(25页珍藏版)》请在冰点文库上搜索。
使用STM32库建立keil4工程详细步骤
STM32使用外设库建立keil工程
新建文件夹取名为自己想要的名称(如GPIO
:
二JGPW
1、打开文件,建立如下的文件结构:
/Frojact
2、打开Project,建立如下文件:
3、打开下载来的外设驱动库如下:
4、把Libraries的下的两个文件(CMSIS和STM32F10x_StdPeriph_Driver)拷贝到GPIO文
件下:
Frfljsiet
irwsE
A
5、打开下载的驱动库下的Project文件,打开STM32F10x_StdPeriph_Examples,找到我们
需要的例程,如GPIO
6、打开GPIO文件夹
In.
L-^
□JTAG主颐砂
User文件。
7、打开lOToggle,复制除了readerme.txt之外的文件到工程下的
复制好之后:
9、打开KEIL,新建工程
FileEdiiVjevProjectFlashDebugPeripheralsToolsS,CSVJndo;-,'Help
NewpVisionProject.^
Project
OpenPropel...
Export
Kansge
RemoveIterr
Ontion^
Euiktarget
Rebuild曰Itargetfi
Ba迪Build…
Translate.
10、
保存在Project文件夹下面,取名为自己的名字,我取名为
GPIQ
11、选定自己使用的芯片,点击ok。
12、此时会跳出这个对框框,选择否:
13、
工程建好后是这样的。
FileEditViewProjectFlash氐bugPeripheralsJ
*阜X
-3Target1
.ScurceGroup1
ZS-TEet1
Tanplatms;
Project
Li"
AiildOiitmit
14、在工程上右键选择MangeComponts如下:
Tpio
Filt曲tViewR-ojettFlashDebugPerphtralsToolsSVCSI
i□a$Q01A麻勺e|>■»Irft&kI番
BuildOutput
15、建立如下组
16、在User下面添加刚才方法哦User下的C文件:
AddFilestuGroup'Uspr
童找范團①i:
|鬥忆直丫
创8圍苏0'
aiiL.cff17s-tri32f10x:
=it.Jffsystem_s£«32£10k.J
Add
CSourcefile1
c)T
文件主]啟)"misc.c(l"z-tr»32fl0x_axlc.c"Hm32£LD:
K_bkp-c"stm32£10x_can
艾件类型①:
CEdurefils(*.e)▼
18、在CMSIS下增加文件:
CMSIS文件下的CM3的CoreSupport的文件
19、
在Startup
F面增加位于,v^IS\CM3\Eavi':
eSuppwt\ST\SrM32FL0:
t\5t4rtup\trnk下的
文件
AddFilestnGroupTStartup
▼ 讥岂Wpstartupstartup 5tartupstartupstartup stup 右tn32£10花—ul・s5tii3ZfWx_hd.sstft32fl0x_hd_vl.sstr»3££10xm1d.s st»32f]Ox_Ld_vl.5xtis32£10x_nid-sstn32fl0jE_niid._vl.e EtnSZflOir5C1=is 立件名©J: 文件嬰型T): Add 口.巾証 20、选择自己芯片对应的文件。 我用的是第二种startup_stm32f10x_hd.s 21、增加完文件后工程如下 Project 弓曰CMSIS 閣|core_ern3„c 二|七勺Startup stsrtuj_stm32fl0x_kd-s SelectFolderObjects…,选择我们在Project目录下的Obj文件 OptionsfarTarget'GPIO' |TurgatOutputLiftingVs»rC/C++AtmLinkerD«bu£Ut订iti«s SetectFolderforQjbjects. MameofExecutable;GPI° Fuller'|_)Project .uvproj GFIO^GTIO.depGFI0_Target1dep 23、勾选长生hex文件。 B«viaTar$«tOutputLlfeting|lliar SelecIFolck*fforQbjecls •Ci^ateExecutable: \Ob|Mest VDebugIntmn诚ion 也一漣立KK立ft vBreeseIntornation 24、在Listing页面下点击 SelectFolderObjectsforlistings…,选择我们在project目录下的List文件 OptionsforTargetTGPIO1X DairiesTargetOutputListingUiarC/C++AmLinkerDabugUtiliti«s SelectFolderforListings.PageWidth;: •Fag益Length;66* Folder? 「一、凹里M 在C/C++页面下配置,这是预编译的定义; Define中写入USE_STDPERIPH_DRIVER,STM32F10X_HD 其中第一个“USE_STDPERIPH_DRIVER定义了使用外设库,定义此项会包含*_conf.h文件,从而使用外设库;而第二个“STM32F10X_HD从字面理解应该是定义了大等容量的 STM32MCUSTM32F10XMD则为中等容量等。 11— SetupCtwmpiletIncludeP^ths: 云X♦♦ fied> Setup匚IncludePathr. 点这蚩iS拓住- 点击ok .分别为: .'User ..\CMSIS\CM3\CoreSupport ..\CMSIS\CM3\DeviceSupport\ST\STM32F10x ..\STM32F10x_StdPeriph_Driver\inc 26、设置完毕,确定ok,ok,结束。 27、由于使用的是都是拷贝的东西,在main.c下面我们有些东西没有用到。 需要做一 定的修该,改成你自己需要的例程就可以了。 我的文件修改如下 mainx 1 /HHt »QbrieFHai.nprDqran. ME ■QpdrdnHone *Dr^tuNone L时 intnain(uaid) 呼「一£ «1 /*r< 叭tttiisstigeth»nicrocaitroLlprclock ^ettinyisalreadyconfigured^ thisisdonethroughtenlnitHfunctivnwhichiscalledFranstartup file1(^brirtup^^frmO^f1(tx_xx;.5Jhefnrpto 1)「科mehtn开卩卩licationn 054 inrcconFlgiiretruesettingof^ystpnifnlt()Functiontreferto 站E si^Stenstn^2FlIx.cFile 鮎E / 057 Ubb /*ConfigureallunuscM)CPiuportpinwinnnaduginputnode(l-JuACinqinput triqge»jorr],thistuillif'lucfthepovercvnsuRptionantiincreasethedevice 肺r f「卯nstFMT/niC#*«*#<»+**«**+**##<»+*/ 061 HCC_RFBZPeriphCiQCHcnd(Ecc_flPBZP? riprigpiqr KCCRPB2Ffrl(]l)GFJOB| 0E2 FCCfirD2PeriphGPTOC RCCAPD2PerlphGP1OD| 363 RCC_fiPBZPeriph_GPIOE, ENABLE); 叫占 CPIO lnitStriJCtii^.CPIOPin=CPIOPinAll; GPIO IflltStnjcture^CPIflllode-GPI9NodeA(h i' GPIfl lnLf(RP[UPFinlisiruLliire); GPIIJ Iilt(GPIIHf&GPIDlHitStructirv}; erro Tnit 070 RPTO _lni|-(fiPI[in,MiPTfl^lnitStruntlire); fl71 GPEd ir1r(LPihetMPr[i_inlr^micrurpj; 072 HCC^ nrB2neriphClDckCn[i(RCCAP02PeriphGP10A rec«n2Perlphgdob| RCCAPI32Pf>rlphCPTOC RCCAPB2Pt*rl|jhGPlOb| U? 5 RccnPH^PtriphGPiot, Dl^nbLL); o? c fl77 078 wniie(计 呵 < oac /* impartiJ^lay*/ > 085 > /** ****************************************************************************** *@fileGPIO/IOToggle/main.c *@authorMCDApplicationTeam *@versionV3.4.0 *@date10/15/2010 *@briefMainprogrambody. ****************************************************************************** *@copy * *THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS *WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE *TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY *DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING *FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE *CODINGINFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS. * /*Includes*/ #include"stm32f10x.h" /**@addtogroupSTM32F10x_StdPeriph_Examples *@{ */ /**@addtogroupGPIO_IOToggle *@{ */ /*Privatetypedef*/ /*Privatedefine*/ /*Privatemacro*/ /*Privatevariables*/ GPIO_InitTypeDefGPIO_InitStructure; /*Privatefunctionprototypes*/ voidDelay(__IOuint32_tnCount); /*Privatefunctions*/ *@briefMainprogram. *@paramNone *@retvalNone */ intmain(void) { /*! */ /*ConfigureallunusedGPIOportpinsinAnalogInputmode(floatinginputtriggerOFF),thiswillreducethepowerconsumptionandincreasethedevice immunity againstEMI/EMC*********************************************** RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_Init(GPIOC,&GPIO_InitStructure); GPIO_Init(GPIOD,&GPIO_InitStructure); GPIO_Init(GPIOE,&GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE,DISABLE); while (1) { /*Insertdelay*/ Delay(0xAFFFF); } } /** *@briefInsertsadelaytime. *@paramnCount: specifiesthedelaytimelength. *@retvalNone */ voidDelay(__IOuint32_tnCount) { for(;nCount! =0;nCount--); } #ifdefUSE_FULL_ASSERT /** *@briefReportsthenameofthesourcefileandthesourcelinenumber *wheretheassert_paramerrorhasoccurred. *@paramfile: pointertothesourcefilename *@paramline: assert_paramerrorlinesourcenumber *@retvalNone */ voidassert_failed(uint8_t*file,uint32_tline) { /*Usercanaddhisownimplementationtoreportthefilenameandlinenumber,ex: printf("Wrongparametersvalue: file%sonline%d\r\n",file,line)*/ /*Infiniteloop*/ while (1) { } } #endif *@} */ *@} *//*******************(C)COPYRIGHT2010STMicroelectronics*****ENDOFFILE****/ 此时编译,成功。 ▼耳*71\ 醪申岳由輕ffi--;l±■£.fc-t--ff.-E-,^: s.E-ELte-..0b nu.niestuKflthcitc : ・”・E«iijiS££lQh_c a Inl? finK: _*ii1rc=5返£1血Urp»gstm32£liJb{wc4xi-c=tn3ZflCb£_cfic.csln32flCllx_crc.csImSSfilOtK_tac_uE」b£_cEyr ctin32,fl3M_dTifie stn32£10bcAfeit<.cTtn32tlOKJEPiac皿3E£1OkiZc.c•532£lg■讪抵c C1.-(TH 0I5 01G Q17 P1T1 刚 02C 幻 025 Q湖Q為哄 02$ OGO 时 Q32 Q賞 rhatax *FROMTHFCONTFMTOFSUCHFlRldU^RFAND/ORTHE11«CODINGIHrORHATJOHWHTAIWDI1EREIHIHCOHHCCT « Xcenti? r>fti: ftpp;finP¥RTI? HT? R1«STI+icroelrnt•/ /«includes JlinrlLJdjvIa£tn32fIDx.h" /"QaiddlogioijpSIKl2Fl0tx_StdP€riphsl[s«nples *Q{ S-SITEililkS COirClLlDQ二匚吨二Idg匸匸畔二Liu? 洱二丘 二二m二LzILZ ±C! Efeilin.^coiiciLina HIT监二1二右 sesnjfilmsGQ^iling -callingpcmpl11r.7qgrc二Liz二: LVC二二二2^czrr二「匸二 Bod<£「O卜untbong10L.lernp«t£! £ 10K_can・n—■VtEl^d±10K_C*C・n—■^Ln52riox_crc•口…^tn32f10K_dac.g».»5tr\32f1kdegras-,耳匸耳…■3Lr52riC'K_eKLl・C・■•・3tn32zljk._±Lcah・□.»mt匸2二f1JK_f3TLH・U・■m-10K_g5-io.c.--*10x_12C・匕・・■araJIf1Ox_iwdg・u・・. 10«_r^e.亡・.・5^32f10x_ims、»□tn32fc.■七 stnSizlOjcspi■口.-*3rn3JT1jzrm_zB,,atnS;: 1◎H.uh©二: .c--3tE32zlC-K=7.L-;Hg・u・■■czr2cxi-zt*a assezthllrzgstaztupstzEJlCl1■二二k二njc・- /**BridillDyruiifiEPICl_inTugyli> «@{ */ Prltiatet^|)edef /*Priwati3rlrFine /*Priijaiteotacro—二-三 E^ocras.Case=2"32RO-da^a^SS6ZI-d3ita=LES€ ihGP10■鼻-0£exq=ib)f0・ jLirik/F^eCortex-MTargetDriverSetup DftbllgTraceFlashDownload JUNKUSB-JTAG/GWAdapter Debug Connect
*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 STM32 建立 keil4 工程 详细 步骤