STM32F4工程模板建立方法
- 格式:docx
- 大小:36.97 KB
- 文档页数:2
1 点击UVision4 project new uvision project,保存在桌面的stm32文件/user文件下(先在桌面建立stm32文件,在里面再建立user文件),取名字STM32_lession1(随意取名)。
点击保存。
2选择芯片型号:选ST公司的STM32F103VET6,有64K SRAM,512K FLASH,接下来的窗口问我们是否拷贝STM32的启动代码到工程文件中,这份代码在M3系列中都是适用的,一般情况下我们都点是,但这里我们用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里点击否。
此时新建工程成功,如下:3 在桌面的STM32文件夹下,新建四个文件夹,分别为:FWLib、CMSIM、Uotput、listing。
4 把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/STM32F10X_StdPeriph_Driver 的inc和src这两个文件夹拷贝到FWlib文件夹中。
5把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Project/STM32F10X_StdPeriph_Template 下的main.c、stm32f10x_it.h、stm32f10x_it.c、stm32f10x_conf.h、system_stm32f10x.c 拷贝到USER文件夹下。
6把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/CMSIS/CM3/DeviceSupport/ST/ STM32F10X/startup/arm下的全部文件拷贝到CMSIS/startup文件夹下。
STM32F103VET6,有512K Flash,属于大容量的,工程中把startup_stm32f10x_hd.s添加到工程文件中。
STM32F4-基于函数库创建⼯程模板1.创建模板主⽬录Template,在主⽬录下添加5个⼦⽂件夹(USER,CORE,FWLIB,SYSTEM,OBJ)2.创建项⽬,打开keil,菜单选择project->new uVision project项⽬保存路径为Template/USER,项⽬名称为Template选择⾃⼰开发的相应芯⽚,我是⽤的是STM32F407ZG, 点击ok 点击Cancel3..添加STM32库函数将函数库⽬录下\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\STM32F4xx_StdPeriph_Driver 中的src与inc复制到FWLIB⽂件夹中(src存放的是库函数,inc中存放的是对应的头⽂件h)4.启动⽂件复制到我们的⼯程⽬录 CORE 之下\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 下⾯,将⽂件 startup_stm32f40_41xxx.s 复制到 CORE ⽬录下⾯\STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Includ ,将⾥⾯的四个头⽂件:core_cm4.h、core_cm4_simd.h、core_cmFunc.h 以及 core_cmInstr.h 同样复制到 CORE ⽬录下⾯。
现在看看我们的 CORE ⽂件夹下⾯的⽂件5.定位到⽬录:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include 将⾥⾯的 2 个头⽂件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 USER ⽬录之下。
STM32工程建立步骤Stm32的工程建立稍微有点复杂,所以写一个教程也是为了防止自己以后忘记了步骤而再次繁琐办事。
首先新建一个工程文件夹改名字打开Domo新建文件夹打开Libraries文件夹新建如下文件夹其实你会发现这都是官方库里面的文件夹,事实上就是拷贝过来的啦。
这是官方3.5版本库首先我们凑齐Libraries 文件夹里的四个子文件夹从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\Core Support\找到下面两个放到core文件夹内从官方库这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ ST\ STM32F10x把startup文件夹直接复制过来放在Libraries里,另外三个文件放在刚刚建的Devices文件夹里然后把startup打开再把arm文件夹里的文件都剪切出来放在startup文件夹里,其余文件删除。
从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\ STM32F10x_StdPeriph_Driver拷贝inc、src这两个文件夹到这里我们新建的Libraries文件夹里的四个子文件夹就凑齐了,可见都是官方的库。
然后我们往Devices文件夹里添加一些文件从官方库的这个位置STM32F10x_StdPeriph_Lib_V3.5.0\ Project\ STM32F10x_StdPeriph_Template复制这五个文件放到Devices文件夹里你会发现这个文件重复了,是因为我们刚才已经放了三个文件其中一个就是它,一模一样随便处理了。
这个时候我们就可以打开Keil了新建工程菜单栏点击Project→New μVision Project会弹出窗口让我们选择位置和工程名我们定位到Project文件夹命名工程为Domo如图点击保存会弹出选择芯片的窗口这里我选择STM32F103RB点击OK弹出一个资料窗口直接点OK,干净的脸庞开始设置项点击选择Output再点击Select Folder…选择Output文件夹,如果需要生成HEX文件,就把Create HEX File勾选。
STM32工程建立与配置流程此次的STM32的学习,在程序的建立与配置上比以往的要更加复杂,所以我个人也是在新建工程以及配置工程中经常落下一些设置与操作,使整个程序无法仿真,或是程序编译出错,为了避免这样的一些基础的错误与麻烦,我个人整理了整个工程的建立到工程的全部设置,谈不上非常细致吧但也足够让一些像我一样的初学者避免一些错误,已经掌握的同学若在日后有忘记的地方也可非常方便的来查看一下。
下面就是创建与配置工程的全部过程,初学者请务必按顺序一步步查看。
1.新建一个文件夹(以后编的每一个工程都放进这个文件夹里,自己命名,例如:STM32 file)2.创建一个文件夹(名字可以根据你编写的程序来命名,如:Demo)2.1 新建子文件夹User,用于存放用户源程序2.2 新建子文件夹Project,用户KEIL工程文件2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。
2.4 将main.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h system_stm32f10x.c等文件复制到User文件下3. 复制源代码到Demo文件夹3.1 将stm32f10x_stdperiph_lib3.5 / Libraries文件夹整体复制到Demo文件夹下这就是ST的标准库,是以源代码形式提供的。
也可将Libraries文件夹直接复制到STM32 file文件夹下,使其与以后创建的其他工程同在一个目录下,这样可使在该目录在的工程共享Libraries。
免得以后创建一个工程就得复制一次Libraries4.新建一个Keil MDK工程4.1 启动Keil MDK,点击菜单 New uVision Project,然后按向导进行操作4.2 选择CPU类型为 STM32F103RC4.3 当提示是否复制启动代码时,请选择否。
4.4 为了延长芯片使用寿命以及加快仿真速度,可以在ram中直接仿真(ram仿真速度快),用ram仿真在断电之后数据就全部丢失了,修改Target名字, 添加两个,一个Flash,一个Ram 如图4.5 为了便于代码管理,在这个Project下创建几个GroupUser : 存放用户自己写的源代码RVMDK : 存放启动文件(汇编文件)StdPeriph_Driver : 存放ST标准库文件CMSIS : 存放CMSIS接口文件(这也是库的一部分)4.6 创建好Group后,我们开始依次添加文件。
一:建立文件夹1.复制库函数中Libraries文件夹到你所需建立工程的文件夹下,例:我在Example文件夹下建立工程,那么把Libraries文件夹复制到Example。
2.在你所需建立工程的文件夹下新建文件夹User。
我在Example下建立User文件夹。
er文件夹下建立Obj和List文件夹4.拷贝库函数里Periject/STM32F4xx_StdPeriph_Templates文件夹下main.c,stm32f4xx_it.c 和stm32f4xx_it.h到User文件夹下5.拷贝库函数里Periject/STM32F4xx_StdPeriph_Templates文件夹下stm32f4xx_conf.h到Libraries\CMSIS\Device\ST\STM32F4xx\Include6.在你所需建立工程的文件夹下新建文件夹CMSIS。
7.在你所需建立工程的文件夹下新建文件夹MDK-ARM。
8.在你所需建立工程的文件夹下新建文件夹STM32F4xx_StdPeriph_Driver。
目前建立的文件夹如图所示:二:建立工程:1.打开Keil4新建工程文档,路径选择为MDK-ARM,选择芯片,然后点否:不添加。
2.然后添加刚刚新建文件夹名字的组。
添加完成后如图:三:给各个组添加文件:er文件夹下添加添加步骤一中User文件夹中的main.c和stm32f4xx_it.c。
2.CMSIS文件夹下添加步骤一中Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates中的system_stm32f4xx.c。
3.MDK-ARM文件夹下添加Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中的startup_stm32f4xx.s。
这个我是用的Keil,所以选arm文件夹下的,其他软件就选其他软件的吧。
第一:软件的安装:第二:阅读《STM32F4开发指南-寄存器版本_V1.1》的第三章主要是MDK的使用技巧。
第三:新建项目工程和下载:寄存器的就先参考我提供的例程,后面讲述库函数的时候咱们再从官方提供的库文件里面去拷贝。
1.新建文件夹STM32_Demo,在这个文件夹里面新建3个文件夹:USER,SYSTEM,HARDWAR。
USER:用来保存工程文件;SYSTEM:用来存放一些官方提供的一些内核文件,以及一些常用的模块文件;HARDWARE:存放和硬件相关的模块文件;2.从我提供的程序代码里面拷贝文件到上面新建的文件夹里面;从1.STM32F4_LED工程文件里面拷贝资料文件到上面新建的文件夹里面:把1.STM32F4_LED--->SYSTEM拷贝到STM32_Demo---->SYSTEM;把1.STM32F4_LED--->HARDWAR拷贝到STM32_Demo---->HARDWARE;把1.STM32F4_LED--->USER--->main.c拷贝到STM32_Demo---->USER里面;3.新建项目工程:新建工程文件并保存到USAR里面;选择芯片如下:STM32F407ZG把文件里面的.c和.s文件添加到项目工程,可以先对其进行分组;最终出现的效果如下(组的名称随意命名):在文件里面还有很多.h文件,咱们要在工程里面知名路径;编译会出现问题,咱们需要添加1个宏定义;STM32F40_41xxx这样编译就没有问题了。
先让ST-Link和STM32开发板连接,并连接到计算机;咱们需要使用ST-Link下载,所以要配置如下:点击上图中“Settings”,进入如下界面:下载工程文件到STM32开发板:配置注意的几点:第四:项目工程的分析:USER:main.c;HARDWARE:led.c和led.h;相关LED灯的操作文件;SYSTEM:sys文件夹:startup_stm32f40_41xxx.s:官方提供的启动代码文件;stm32f4xx.h:官方提供的STM32F4系列芯片的头文件,类似reg51.h。
1.下载对应型号的STM32固件库2.建立好对应的文件夹2.1 建立文件夹工程说明主要存放stm32f429的官方固件库存放编译产生的调试信息,hex文件,预览信息,封装库扥文件主要存放内核文件和启动文件存放main函数,中断函数,配置函数,429系统函数2.2 在文件夹里放对应的固件库文件1.。
将inc,src文件夹放入。
2.找到startup_stm32f429_439xx.s?放入找到core_cm4,core_cm4_simd,core_cmFunc,core_cmInstr放入3.将里面所有的文本文件放入user文件夹。
将stm32f4xx.h和system_stm32f4xx.h放入user文件夹。
3.打开Keil建立工程模板一找到对应的STM32芯片型号二在该对话框中建立STARTUP,User,Libraries文件夹,给这三个文件夹中添加c文件,STARTUP文件夹中只添加.s启动文件三勾选Use MicroLib 为了日后编写串口驱动的时候可以使用printf函数勾选Create HEX File,在编译过程当中产生hex文件选择Select Folder for Objects 为文件夹Output选择默认的文件夹不用调整Define添加宏STM32F429_439xx,USE_STDPERIPH_DRIVER,进入Include Paths按如下添加头文件路径要进行仿真的话,选择好对应的USE仿真器型号五STM32F429比较特殊,它的用FMC代替了FSMC,所以要将stm32f4xx—_fsmc.c文件不加入编译剔除Include in Target Bulid的勾4.然后就可以在User用main.c文件进行正常的编译了。
1 建立工程
1)新建
2)命名并保存在USER 文件夹里
3)选择单片机的型号
根据使用单片机的型号进行选择
2 创建工作组
1)点击工作组管理图标
2)添加工作
在现有工作组上双击即可改名字,单击左第一个图标可以添加新的工作组
3)添加c文件到各个工作组c文件
添加方法
添加下一个
A 启动代码
路径CMSIS/StaruptCode
B 添加内核文件
路径CMSIS
C STM32库文件
路径FWlib/src
D 用户编写的延时和一些宏定义
路径SYSTEM/delay
SYSTEM/sys
E 添加主函数
路径USER
3 添加头文件宏定义,头文件路径
1)将STM32F10X_HD,USE_STDPERIPH_DRIVER填入STM32F10X_HD 根据使用芯片容量要进行修改此内容STM32F10X_HD 大容量芯片
STM32F10X_MD 中容量芯片
STM32F10X_LD 小容量芯片
2)添加头文件路径
4 测试是否通过
编译没错即可。
今天外我来教大家来怎么使用这个建工程的利器吧。
首先是新建工程吧,如下图步骤:因为我用的是stm32f401 Necleo,所以芯片型号应该要选择stm32f401te,选好芯片类型后,会弹出一个大的面板,如下图:红色框里的都是一些集成在keil 5的启动文件,arm内核的文件,st公司的库函数和一些API等等。
一个工程最起码也要选上core和startup两个选项,如下图:然后选择OK,就建好了空白的工程。
然后就要对工程做一些设置,如下图:然后在你工程的路径新建一个USE(这个大家可以随便建个文件,不一定是USE 名字的)的文件夹,然后在里面新建一个main.c的文件,如下图:然后新建的文件main.c添加到工程当中,步骤如下:然后在main.c文件中添加如下代码:到这里我们的空白工程建好了,后面我来教大家怎样加keil 5里自带的st库。
首先我点击那个绿色的小图标,如下图:点击后会弹出一个大的页面,然后找到Device->StdPeriph Drivers。
如下图:点开StdPeriph Drivers选项的加号图标,就可以看到st库目录下各外设的驱动文件,后面是他的版本说明,这是V1.3版本的,是比较新的,建议大家尽量使用新的库。
我这里就勾上了所有外设的驱动的文件,如下图:然后点击OK后,就可以看到原先工程目录下的Device添加了刚才选择外设的驱动文件。
添加完后大家不要急着编译工程,还有对工程进行相关的配置,否则如下图,编译不成功的:接下来,我来配置下工程,右击target,然后进入配置工程的面板,步骤如下:这里要填上USE_STDPERIPH_DRIVER,这就是表明编译器选择了st的库然后我们来指定编译器头文件的路径以上这两个路径是编译器编译时要找的路径,这几个头文件至关重要,这里编译器关联头文件所需要的。
当做完以上工作后,我们就可以来编译一下工程,在编译时,编译器就会根据我们的配置来编译驱动头文件和驱动的C文件。
使用MDK(Keil)建立一个STM32工程模板的流程如图所示:一.获取ST库源码。
到ST公司的官网进行查找并下载,如图所示:1.新建工程文件夹——《STM32工程模板》。
首先,新建工程文件夹《STM32工程模板》,然后再在该文件夹下新建6个文件夹,分别:《Doc》、《BSP 》、《Listing》、《Output》、《Project》和《User》。
其中,2.《Doc》用于存放各种说明文档;《BSP 》用于存放各种库文件;《Listing》用于存放编译时产生的中间文件;《Output》用于存放生成的下载所需的文件;《Project》用于存放工程文件;《User》用于存放用户文件,即我们自己编写的各种源文件。
具体情况如下图所示:具体步骤,以KEIL5 MDK5.18中建立STM32F417工程为例:二.STM32工程建立(F4系列)2016年4月13日16:57将下载的stm32f4_dsp_stdperiph_lib_zip 压缩包中的文件复制到工程模板文件夹下的STM32F4XX_StdPeriph_Driver 文件夹。
如下图:1)将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Include 文件夹中对应的core_cm 文件复制到工程模板文件夹下的CMSIS文件夹。
具体操作情况如下图:2)向建立的工程文件夹中添加库文件。
3.将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Device\ST\STM32F4xx\Include 文件夹中文件复制到工程模板文件夹下的CMSIS 文件夹。
具体操作情况如下图:3)将stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 文件夹中对应芯片的startup 文件复制到工程模板文件夹下的CMSIS 文件夹。
神州Stm32学习笔记:一、工程模板的创建:为什么要创建工程模板?这是为了我们开发方便。
ST公司对cotex—M系类的处理器写了很多的库文件,我们只需在他们的库文件下进行开发,不需要对stm32的各个寄存器进行配置,st 公司对寄存器的操作已经帮我们弄好了。
我只要会用它提供的接口就ok 了。
我们字需要st提供的固件库上进行我们的项目开发即可。
这样我们如果自己先建立一个工程模板,把需要的文件都包含进来,只需要改我们的自己编写的文件即可。
官方固件库有三个文件夹:先建立自己的文件夹。
这里我建立的是文件夹是STM32工程模板:然后将stm32库解压:直接将library 拷到stm32工程模板文件夹下。
然后在stm32工程模板下建立三个文件夹:obj、user、project这三个文件我是分别用来存放中间目标文件,用户自定义文件。
和工程项目文件。
此时stm32文件下有然后再来看看这些文件夹下分别有什么?Library :其中:cmsis 主要包括三层:Core Peripheral Access Layer(内核外围接入层)、Device Peripheral Access Layer(硬件外围接入)、Access Functions for Peripherals(外围接口函数)。
在mdk的说明书上原文是这样的STM32F10x_StdPeriph_Driver:Z主要是外设接口的定义和实现部分。
其中CMSIS文件夹有这些文件:在CMSIS文件夹内容分布:Coresupport中放的是和内核有关的东西。
Devicesupport放的是有启动文件。
这是library下的主要的东西。
构建自己的工程模板时可以直接考过来即可。
然后是建立自己的文件。
打开keil然后新建工程放在:project文件夹下。
此时文件夹下存在然后建立user文件下的文件。
我们自己的main函数,中断函数还有自己的子程序文件都是放在user下面的。
STM32系列之新建⼯程模板(三)今天,我将记录STM32如何新建⼀个模板步骤第⼀步:⾸先先新建⼀个⽂件夹(英⽂命名的)——作为⼯程根⽬录第⼆步;在⽂件夹中新建⼀个名为USER的⼦⽬录⽂件第三步:点击 MDK 的菜单:Project –>New Uvision Project ,然后将⽬录定位到刚才建⽴的⽂件夹 Template 之下,在这个⽬录下⾯建⽴⼦⽂件夹 USER然后定位到 USER ⽬录下⾯,我们的⼯程⽂件就都保存到 USER ⽂件夹下⾯。
⼯程命名为 Template,点击保存。
第四步:接下来会出现⼀个选择 CPU 的界⾯,就是选择我们的芯⽚型号。
如图 3.3.3 所⽰,因为 ALIENTEK 战舰 STM32F103 所使⽤的 STM32型号为 STM32F103ZET6,所以在这⾥我们选择 STMicroelectronics STM32F1 Series STM32F103 STM32F103ZET6(如果使⽤的是其他系列的芯⽚,选择相应的型号就可以了。
点击 OK,MDK 会弹出 Manage Run-Time Environment 对话框,如图所⽰:这是 MDK5 新增的⼀个功能,在这个界⾯,我们可以添加⾃⼰需要的组件,从⽽⽅便构建开发环境,不过这⾥我们不做介绍。
所以在图 3.3.4 所⽰界⾯,我们直接点击 Cancel,即可得到如图所⽰界⾯:到这⾥,我们还只是建了⼀个框架,还需要添加启动代码,以及.c ⽂件等。
4) 现在我们看看 USER ⽬录下⾯包含 2 个⽂件夹和 2 个⽂件,如下图所⽰:第五步:接下来,我们在 Template ⼯程⽬录下⾯,新建 3 个⽂件夹 CORE, OBJ 以及 STM32F10x_FWLib。
CORE ⽤来存放核⼼⽂件和启动⽂件,OBJ 是⽤来存放编译过程⽂件以及 hex ⽂件,STM32F10x_FWLib ⽂件夹顾名思义⽤来存放 ST 官⽅提供的库函数源码⽂件。
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\Cor eSupport下面,将文件core_cm3.c和文件core_cm3.h 复制到CORE 下面去。
然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceS upport\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为大容量芯片的启动文件。
如何使用MDK5.0建立STM32F439工程声明:1.STM32F4xx_StdPeriph_Driver下的文件——按需添加,否则全添加后将导致编译变慢!2.对于Keil MDK,为了避免中文字符串告警,需要在C/C++编译选项中增加--diag_suppress=870参数。
环境说明:1Keil uVision 5.122STM32F439一.创建工程1.新建工程2.目标芯片型号选择3.管理实时管理配置自己的工程环境,这里面包括启动文件和核心文件,大家就按自己的需求来配置吧。
在这儿我就只用了一些简单的功能。
必选的有CMSIS下的CORE和Device下的Startup。
其它功能根据需要配置(Device下StdPeriph Drivers)。
在这儿要注意几点:1).以Device下StdPeriph Driversi\GPIO为例,这个功能其实是对应着stm32f4xx_gpio.h文件(其它同理),这些功能在建立工程前后都可以选择或去除。
2).当你选择某个功能的时候keil会提示你“要想这个功能正常工作,可能还会需要某些文件”,比如我只选择GPIO功能,keil 会提示你还需要两个文件(分别是RCC与Framework),配置好的功能会变绿,没有配置好显示黄色。
4.配置好的工程如下图:5.下面再说说“工程目标选项_右键\工程目标Target1\Options for Target’Target1’...”5.15.3.1Preprocessor Symbols处理宏:USE_STDPERIPH_DRIVER,STM32F429_439xx,USE_STM32 F429I_DISCO,5.3.2Warnings:开启所有警告5.3.3one elf section per function:每个函数生成一个ELF段5.3.4Include Paths:包含路径索引到自己的以下目录即可\Libraries\CMSIS\Device\ST\STM32F4xx\Include \Libraries\CMSIS\Include\Libraries\STM32F4xx_StdPeriph_Driver\inc\Utilities\STM32F429I-Discovery\My_Projects\Project15.4。
除了在MDK中可以开发,在eclipse中照样可以进行开发工作首先创建一个新工程
在这里选择空项目,并且交叉编译工具选择ARM GCC
工程建立好后可以看到GUN的路径以及一些头文件然后在工程目录下建立两文件夹
然后将固件库也移植到对应的目录下
下面开始配置工程模板
首先将固件库中的
用文字表述就是:将
\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 放到
USER目录下
第二个:
将
\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10 x\startup\TrueSTUDIO
目录下的启动文件
将后缀改成大写
BCE等分别代表VC,VZ
由于这里我们使用的是STM32 CB所以选择B
最后删除掉
STM32F10x_StdPeriph_Lib_V3.5.0文件夹下的Utilities和Project文件夹
按F5或者刷新工程
此时
接下来配置工程
表示使用中型内存的muc和外围固件
最后修改函数
编译过程中报了下面三个错误第二个错误:
要添加make工具
解决这些问题:进入ccore_cm3.c
找到这一行
修改
这样就修改完成了
最后保存刷新,刷新很重要
这样就完成了工程的建立
这样,一个在eclipse下建立的stm32工程就完成了。
STM32F4学习笔记(基础介绍篇)这⾥我们学习的开发板芯⽚具体型号是STM32F407ZGT6,采⽤⼯作频率为168 MHz的Cortex™-M4内核,性能较强。
本篇包含的内容:1. 固件库简介2. 开发环境的简介3. 开发板的基础知识⼀、固件库的介绍:前⾔: 在51单⽚机中,我们经常是直接操作 寄存器:P0=0x11; //通过16进制数赋值0,1直接设置寄存器每⼀位开启关闭在STM32中,⾯对⼤量的寄存器,很难全部记住并通过直接赋值来操作,开发效率太低且维护起来很⿇烦,于是可以通过函数的⽅式将对寄存器的操作封装起来,我们⼤多数时候只需要使⽤函数调⽤接⼝(API):/**库函数控制电平的翻转*void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)*{* GPIO->BSRRL = GPIO_Pin; //实际上还是控制寄存器,可以⾃⾏查询源码*}*///我们控制BSRRL寄存器实现电平控制只需要如下操作:GPIO_SetBits(GPIOF,GPIO_Pin_10); //LED1对应引脚GPIOF.10,拉⾼电平表⽰灯灭CMSIS标准:上⾯我们得知,固件库的存在实际上在⼀定程度上使得硬件与软件相分离,如果对于不同的硬件我们都使⽤同⼀个标准(⽐如,规范统⼀的命名,相同的结构层次)就能够实现较好的软件可移植性或者实现较好的兼容性。
arm公司为实现不同芯⽚公司⽣产的Cortex-M4芯⽚软件上的兼容,提出了CMSIS标准(Cortex Microcontroller Software Interface Standard)。
可以简单理解为为了实现接⼝的规范统⼀。
以后我们还会知道其他如HAL、LL库等的使⽤,基本概念原理是⼀样的,此处不做讲解。
STM32官⽅固件库讲解:在⼀个⼯程中,固件库之间的相互关系如下图:1、Application.c:也就是main.c,程序的主逻辑⽂件。
新建工程模版
1
如图所示,新建四个文件夹,
CMSIS 用来存放M3内核的单片机通用的文件
Starup存放的是启动文件,直接复制即可,
stm32f10x.h是单片机的头文件,包含了所有寄存器的地址映射System_stm32f10x.c是符合CMSIS接口标准的库文件
USER用来存放工程文件
其中stm32f10x_it.c和stm32f10x_it.h是中断函数,里面为空需要用到的时候再进行修改Stm32f10x_conf.h是需要用户配置的头文件当我们用到芯片某部分的外设时将其包含进来即可,
System_stm32f10x.c是符合CMSIS接口标准的库文件
FWlib用来存放芯片上所有的头文件(inc)和驱动(src),
listing用来存放编译过程中产生的文件,Output用来存放编译之后输出的文件添加工程文件
工程的设置
点击魔术棒按钮,进入工程的各项设置
在output选项卡下将输出文件的存放位置定位到outout 文件夹下,同时选中生成HEX文件在listing选项卡下将输出文件的存放位置定位到listing文件夹下
在C\C++选项卡中定位preprocessor symbol 到
USE_STDPERIPH_DRIVER,STM32F10X_HD
同时include paths 定位到..\CMSIS;..\USER;..\FWlib\inc;..FWlib\src。
微控制器综合设计与实训实验名称: 实验一 工程模板的建立实验一:工程模板的建立1 实训任务(1) 安装Keil MDK5软件,安装芯片软件包,注册软件;(2) 新建工程文件;(3) 下载程序,并进行软件仿真,观察程序运行结果。
1.1 实验说明STM32所有系列的微控制器都可以在Keil MDK5下进行软件开发。
K eil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4等。
目前Keil MDK 由三家国内代理商提供技术支持和相关服务。
MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。
MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
1.2 实验步骤(1) 安装Keil MDK5软件,安装芯片软件包,注册软件;(2) 建立工程文件,选择芯片型号,加载系统文件、内核文件、标准外设驱动函数,添加系统启动文件;(3) 设置头文件加载路径,需要配置一个全局的宏定义变量,定位到c/c++界面,然后填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”到Define输入框里面;(4) 编译整个工程,根据提示修改语法错误;(5) 下载程序;(6) 选择仿真模式,利用模拟示波器观察程序运行结果。
2 程序设计(1) 新建文件夹Template,点击MDK的菜单:Project–>New Uvision Project,然后将路径定位到Template之下,在这个文件夹下面建立子文件夹USER,将工程文件就保存在USER文件夹中。
工程命名为Template,点击保存。
图1 新建工程(2) 接下来会出现一个选择CPU的界面,就是选择芯片型号。
如图2.19所示,实训平台所使用的芯片型号为STM32F103ZET6,所以在这里选择STMicroelectronics–>STM32F1 Series–>STM32F103–>STM32F103ZET6。
STM32F4工程模板建立方法
在Keil环境下建立STM32F4的工程模板可以按照以下步骤进行操作:
1. 打开Keil软件,选择“Project”->“New µVision Project”命令,弹出新建项目对话框。
2. 在对话框中选择工程的保存路径和名称,点击“Save”保存。
3. 在“Create Project Folder”对话框中选择是否要在工程文件夹
中创建子文件夹,选择“Yes”或“No”并点击“OK”完成创建。
4. 弹出新建文件对话框,选择需要添加到工程中的文件类型,例如
C源文件或者汇编文件,点击“Save”保存。
5. 在“Options for Target”对话框中选择芯片型号和包装封装类型,并点击“OK”关闭对话框。
6. 在Keil主界面的工程文件窗口中右键单击“Source Group”文件夹,选择“Add Existing Files to Group 'Source Group'”命令,选择
要添加到工程的源文件,并点击“Add”完成添加。
7. 右键单击“Include”文件夹,选择“Add Exist ing Files to Group 'Include'”命令,选择要添加到工程的头文件,并点击“Add”完
成添加。
8. 在工程文件窗口中选择“Options for Target”->“C/C++”选项,在右侧的Edit框中添加需要进行编译的文件路径,在Options for
Target - C/C++窗口中点击“OK”完成路径设置。
9. 在工程文件窗口中选择“Options for Target”->“Output”选项,在右侧的Edit框中选择输出文件的路径和名称,点击“OK”完成路径设置。
10. 在Keil主界面的工具栏中点击“Build”按钮进行编译,编译成功后会生成目标文件和可执行文件。
注意事项:
1.在建立工程模板时,需要根据实际的芯片型号和芯片封装类型进行设置,确保编译器和调试工具能够正确地识别和支持所选的硬件。
2.在添加源文件和头文件时,需要确保文件路径和文件名的正确性,否则将会导致编译错误。
3.在设置编译输出文件路径和名称时,需要注意文件的扩展名和保存位置,确保生成的文件能够正确地与硬件进行交互。
以上就是在Keil环境下建立STM32F4的工程模板的方法,按照上述步骤进行操作,可以很方便地建立自己的工程模板并进行编译和调试。