您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 使用STM32库建立keil-4工程详细步骤.
STM32使用外设库建立keil工程新建文件夹取名为自己想要的名称(如GPIO)1、打开文件,建立如下的文件结构:2、打开Project,建立如下文件:3、打开下载来的外设驱动库如下:4、把Libraries的下的两个文件(CMSIS和STM32F10x_StdPeriph_Driver)拷贝到GPIO文件下:5、打开下载的驱动库下的Project文件,打开STM32F10x_StdPeriph_Examples,找到我们需要的例程,如GPIO6、打开GPIO文件夹7、打开IOToggle,复制除了readerme.txt之外的文件到工程下的User文件。复制好之后:8、到此,准备工作完毕。9、打开KEIL,新建工程10、保存在Project文件夹下面,取名为自己的名字,我取名为GPIO。11、选定自己使用的芯片,点击ok。12、此时会跳出这个对框框,选择否:13、工程建好后是这样的。14、在工程上右键选择MangeComponts如下:15、建立如下组16、在User下面添加刚才方法哦User下的C文件:点击Add17、增加StdPeriph_Driver的文件,在自己工程StdPeriph_Driver下面的下面的src文件如下:(说明:只需要增加自己需要的,我这里全部添加了)18、在CMSIS下增加文件:CMSIS文件下的CM3的CoreSupport的文件19、在StartUp下面增加位于下的文件20、选择自己芯片对应的文件。我用的是第二种startup_stm32f10x_hd.s21、增加完文件后工程如下现在左键点击选中GPIO工程名,在点击右键选择OptionsforTarget‘GPIO’来配置工程22、在output页面下点击SelectFolderObjects…,选择我们在Project目录下的Obj文件23、勾选长生hex文件。24、在Listing页面下点击SelectFolderObjectsforlistings…,选择我们在project目录下的List文件在C/C++页面下配置,这是预编译的定义;Define中写入USE_STDPERIPH_DRIVER,STM32F10X_HD其中第一个“USE_STDPERIPH_DRIVER”定义了使用外设库,定义此项会包含*_conf.h文件,从而使用外设库;而第二个“STM32F10X_HD”从字面理解应该是定义了大等容量的STM32MCU,STM32F10X_MD则为中等容量等。25、现在设置Includepaths:设置如下的头文件路径:点击ok.分别为:.\User..\CMSIS\CM3\CoreSupport..\CMSIS\CM3\DeviceSupport\ST\STM32F10x..\STM32F10x_StdPeriph_Driver\inc26、设置完毕,确定ok,ok,结束。27、由于使用的是都是拷贝的东西,在main.c下面我们有些东西没有用到。需要做一定的修该,改成你自己需要的例程就可以了。我的文件修改如下/*********************************************************************************@fileGPIO/IOToggle/main.c*@authorMCDApplicationTeam*@versionV3.4.0*@date10/15/2010*@briefMainprogrambody.*******************************************************************************@copy**THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS*WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVE*TIME.ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANY*DIRECT,INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISING*FROMTHECONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHE*CODINGINFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.**h2center©COPYRIGHT2010STMicroelectronics/center/h2*//*Includes------------------------------------------------------------------*/#includestm32f10x.h/**@addtogroupSTM32F10x_StdPeriph_Examples*@{*//**@addtogroupGPIO_IOToggle*@{*//*Privatetypedef-----------------------------------------------------------*//*Privatedefine------------------------------------------------------------*//*Privatemacro-------------------------------------------------------------*//*Privatevariables---------------------------------------------------------*/GPIO_InitTypeDefGPIO_InitStructure;/*Privatefunctionprototypes-----------------------------------------------*/voidDelay(__IOuint32_tnCount);/*Privatefunctions---------------------------------------------------------*//***@briefMainprogram.*@paramNone*@retvalNone*/intmain(void){/*!Atthisstagethemicrocontrollerclocksettingisalreadyconfigured,thisisdonethroughSystemInit()functionwhichiscalledfromstartupfile(startup_stm32f10x_xx.s)beforetobranchtoapplicationmain.ToreconfigurethedefaultsettingofSystemInit()function,refertosystem_stm32f10x.cfile*//*ConfigureallunusedGPIOportpinsinAnalogInputmode(floatinginputtriggerOFF),thiswillreducethepowerconsumptionandincreasethedeviceimmunityagainstEMI/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****/此时编译,成功。
本文标题:使用STM32库建立keil-4工程详细步骤.
链接地址:https://www.777doc.com/doc-2862548 .html