您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > STM32建工程详细方法步骤
1、首先找到ST官方最新版本的固件库:STM32F10x_StdPeriph_Lib_V3.5.02、新建一个工程文件夹:比如led工程文件夹3、在led工程文件夹中新建5个文件夹:CORE、HARDWARE、STM32F10x_FWLib、SYSTEM、USERCORE用来存放启动文件等HARDWARE用来存放各种硬件驱动代码STM32F10x_FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件SYSTEM文件夹下包含了delay、sys、usart等三个文件夹。分别包含了delay.c、sys.c、usart.c及其头文件delay.h、sys.h、usart.hUSER用来存放我们主函数文件main.c,以及其他包括system_stm32f10x.c等等。4、将固件库包里面相关的启动文件复制到我们的工程目录CORE之下打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下面,将文件core_cm3.c和文件core_cm3.h复制到CORE下面去。然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,将里面startup_stm32f10x_md.s、startup_stm32f10x_ld.s、startup_stm32f10x_hd复制到CORE下面。这里我们解释一下,其实我们只用到arm目录下面的startup_stm32f10x_md.s文件,这个文件是针对中等容量芯片的启动文件。其他两个主要的为startup_stm32f10x_ld.s为小容量,startup_stm32f10x_hd.s为大容量芯片的启动文件。这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户。现在看看我们的CORE文件夹下面的文件:5、将官方的固件库包里的源码文件复制到我们的工程目录STM32F10x_FWLib之下。打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,将目录下面的src,inc文件夹copy到我们刚才建立的STM32F10x_FWLib文件夹下面。src存放的是固件库的.c文件,inc存放的是对应的.h文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c文件和一个.h头文件。现在看看我们的STM32F10x_FWLib文件夹下面的文件:5、将官方的固件库包里的源码文件复制到我们的工程目录USER之下。打开固件库STM32F10x_StdPeriph_Lib_V3.5.0文件夹,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER目录下。然后在USER目录下创建两个文件夹:obj、list保存工程编译产生的文件新建工程打开Keil软件(这里用的是Keil4.10),点击Keil的菜单:Project–NewUvisionProject然后将目录定位到刚才建立的文件夹工程文件夹led之下,然后双击进入到USER目录,我们的工程文件就都保存到USER文件夹下面。工程命名为led,点击保存接下来会出现一个选择Device的界面,就是选择我们的芯片型号,这里我们定位到STMicroelectronics下面的STM32F103RB(针对我们的mini板子是这个型号,如果是其他芯片,请选择对应的型号即可)。弹出对话框“CopySTM32StartupCodetoproject….”,询问是否添加启动代码到我们的工程中,这里我们选择“否”,因为我们使用的ST固件库文件已经包含了启动文件。我们回到USER目录下面,可以看到工程建立了:右键点击Target1,选择ManageComponentsProjectTargets一栏,我们将Target名字修改为led,然后在Groups一栏删掉一个,建立5个Groups:CORE、USER、FWLIB、HARDWARE、SYSTEM点击OK.可以看到我们的Target名字以及Groups情况下面我们往Group里面添加我们需要的文件这里第一步我们选择FWLIB,然后点击右边的AddFiles,定位到我们刚才建立的目录STM32F10x_FWLib/src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close.可以看到Files列表下面包含我们添加的文件。用同样的方法,将Groups定位到CORE和USER下面,添加需要的文件。这里我们的CORE下面需要添加的文件为core_cm3.c,startup_stm32f10x_md.s,USER目录下面需要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c.这样我们需要添加的文件已经添加到我们的工程中去了,最后点击OK,回到工程主界面。下面我们要告诉MDK,在哪些路径之下搜索相应的文件。回到工程主菜单,点击Project--OptionsforTarget“Target1”或者直接点击“魔术棒”,出来一个菜单,然后点击c/c++选项.然后点击IncludePaths右边的按钮。弹出一个添加path的对话框,然后我们将图上面的3个目录添加进去。记住,keil只会在一级目录查找,所以如果你的目录下面还有子目录,记得path一定要定位到最后一级子目录。然后点击OK.同样点击魔术棒,进入配置菜单,选择Output。然后勾上下三个选项。其中CreateHEXfile是编译生成hex文件,BrowserInformation是可以查看变量和函数定义点击进入SelectFolderofObjects…选择USER下的obj目录保存编译所生成的目标文件同样点击魔术棒,进入配置菜单,选择Listing,点击进入SelectFolderofObjects…选择USER下的obj目录保存编译所生成的列表文件接下来编译工程,会发现出现错误,双击第一个错误,然后会自动定位到文件stm32f10x.h中出错的地方,可以看到代码:#if!defined(STM32F10X_LD)&&!defined(STM32F10X_LD_VL)&&!defined(STM32F10X_MD)&&!defined(STM32F10X_MD_VL)&&!defined(STM32F10X_HD)&&defined(STM32F10X_HD_VL)&&!defined(STM32F10X_XL)&&!defined(STM32F10X_CL)#errorPleaseselectfirstthetargetSTM32F10xdeviceusedinyourapplication(instm32f10x.hfile)#endif#if!definedUSE_STDPERIPH_DRIVER这是因为3.5版本的库函数在配置和选择外设的时候通过宏定义来选择的,所以我们需要配置一个全局的宏定义变量。按照步骤16,定位到c/c++界面,然后copy“STM32F10X_MD,USE_STDPERIPH_DRIVER”到Define里面。这里解释一下,如果你用的是大容量那么STM32F10X_MD修改为STM32F10X_HD,小容量修改为STM32F10X_LD.然后点击OK。这次在编译之前,我们记得打开工程USUR下面的main.c,在删除main文件中暂时不需要的头文件、宏定义、函数等可以看到生成了hex文件在USER目录下的obj文件夹中,这个文件我们用mcuisp下载到mcu即可
本文标题:STM32建工程详细方法步骤
链接地址:https://www.777doc.com/doc-7216878 .html