使用STM32库建立keil4工程详细步骤.docx
- 文档编号:23443746
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:693.96KB
使用STM32库建立keil4工程详细步骤.docx
《使用STM32库建立keil4工程详细步骤.docx》由会员分享,可在线阅读,更多相关《使用STM32库建立keil4工程详细步骤.docx(19页珍藏版)》请在冰豆网上搜索。
使用STM32库建立keil4工程详细步骤
STM32使用外设库建立keil工程
新建文件夹取名为自己想要的名称(如GPIO)
1、打开文件,建立如下的文件结构:
2、打开Project,建立如下文件:
3、打开下载来的外设驱动库如下:
4、把Libraries的下的两个文件(CMSIS和STM32F10x_StdPeriph_Driver)拷贝到GPIO文件下:
5、打开下载的驱动库下的Project文件,打开STM32F10x_StdPeriph_Examples,找到我们需要的例程,如GPIO
6、打开GPIO文件夹
7、打开IOToggle,复制除了readerme.txt之外的文件到工程下的User文件。
复制好之后:
8、到此,准备工作完毕。
9、打开KEIL,新建工程
10、保存在Project文件夹下面,取名为自己的名字,我取名为GPIO。
11、选定自己使用的芯片,点击ok。
12、此时会跳出这个对框框,选择否:
13、工程建好后是这样的。
14、在工程上右键选择MangeComponts如下:
15、建立如下组
16、在User下面添加刚才方法哦User下的C文件:
点击Add
17、增加StdPeriph_Driver的文件,在自己工程StdPeriph_Driver下面的下面的src文件如下:
(说明:
只需要增加自己需要的,我这里全部添加了)
18、在CMSIS下增加文件:
CMSIS文件下的CM3的CoreSupport的文件
19、在StartUp下面增加位于
下的文件
20、选择自己芯片对应的文件。
我用的是第二种startup_stm32f10x_hd.s
21、增加完文件后工程如下
现在左键点击选中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\inc
26、设置完毕,确定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.
*
*
©COPYRIGHT2010STMicroelectronics
*/
/*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)
{
/*!
thisisdonethroughSystemInit()functionwhichiscalledfromstartup file(startup_stm32f10x_xx.s)beforetobranchtoapplicationmain. ToreconfigurethedefaultsettingofSystemInit()function,referto system_stm32f10x.cfile */ /*ConfigureallunusedGPIOportpinsinAnalogInputmode(floatinginput triggerOFF),thiswillreducethepowerconsumptionandincreasethedevice immunityagainstEMI/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 /** *@briefReportsthenameofthesourcethesourcelinenumber *wheretheassert_paramerrorhasoccurred. *@paramfile: pointertothesource *@paramline: assert_paramerrorlinesourcenumber *@retvalNone */ voidassert_failed(uint8_t*file,uint32_tline) { /*Usercanaddhisownimplementationtoreporttheandlinenumber, ex: printf("Wrongparametersvalue: online%d\r\n",file,line)*/ /*Infiniteloop*/ while (1) { } } #endif /** *@} */ /** *@} */ /*******************(C)COPYRIGHT2010STMicroelectronics*****ENDOFFILE****/ 此时编译,成功。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 STM32 建立 keil4 工程 详细 步骤