使用STM32库建立keil工程详细步骤讲解学习.docx

上传人:b****1 文档编号:489455 上传时间:2023-04-29 格式:DOCX 页数:18 大小:647KB
下载 相关 举报
使用STM32库建立keil工程详细步骤讲解学习.docx_第1页
第1页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第2页
第2页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第3页
第3页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第4页
第4页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第5页
第5页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第6页
第6页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第7页
第7页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第8页
第8页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第9页
第9页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第10页
第10页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第11页
第11页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第12页
第12页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第13页
第13页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第14页
第14页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第15页
第15页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第16页
第16页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第17页
第17页 / 共18页
使用STM32库建立keil工程详细步骤讲解学习.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

使用STM32库建立keil工程详细步骤讲解学习.docx

《使用STM32库建立keil工程详细步骤讲解学习.docx》由会员分享,可在线阅读,更多相关《使用STM32库建立keil工程详细步骤讲解学习.docx(18页珍藏版)》请在冰点文库上搜索。

使用STM32库建立keil工程详细步骤讲解学习.docx

使用STM32库建立keil工程详细步骤讲解学习

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

/**

*@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****/

此时编译,成功。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2