IAR-STM32开发工程建立步骤
- 格式:pdf
- 大小:2.27 MB
- 文档页数:25
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后,我们开始依次添加文件。
第一步:文件准备新建一个文件夹‘流水灯’用于存放工程然后将固件库FWLIB中的library文件夹复制粘贴到你所建的工程文件夹中;再将FWLIB中project文件夹中的main.c ,stm32f10x_conf.h ,stm32f10x_it.c ,stm32f10x_it.h 这四个文件复制粘贴到‘流水灯’中;再将FWLIB\project\EWARMv5\中的四个镜像文件(后缀为icf)的文件复制粘贴到‘流水灯’中。
再将上述文件夹中的cortexm3_macro.s ,stm32f10x_vector.c 复制粘贴到你的工程文件夹中。
到此文件准备就基本完成。
第二步:新建IAR工程启动IAR EWARM 5.40点project----create New Project选择Create New Project 后弹出一个如下窗口,在窗口中的下拉菜单中选择ARM ,在project templates 中选在Empty Project ,然后点击OK.点击OK后会弹出一个路径选择窗口,只需选择你所建的工程的路径,然后输入工程名即可,点击保存,就可看到左边出现了你刚刚新建的工程第三步 : 为工程添加分组及文件在左边的工程名上点击右键,选择ADD ---ADD Group ,添加三个分组:EWARM , FWLIB , USER将你所建工程中的main.c , stm32f10x_conf.h ,stm32f10x_it.c , stm32f10x_it.h这四个文件添加到USER 分组中;将cortexm3_macro.s , stm32f10x_vector.c 添加到EWARM分组中;将library\src中相应的文件(初学者亦可全选)添加到FWLIB中;之后只需在main.c中进行修改,编写你所需的程序即可。
但此时有可能出现一种情况就是main.c无法修改,本人建议将原来main.c中的内容全部复制,然后在工程文件夹中删除该main.c,然后新建一个文档,将其后缀改为.c然后将刚刚复制的内容粘贴到其中,最后再将其重新添加到USER分组中(应注意必须先Remove原先那个main.c)即可。
以前用IAR,正点原子提供的是MDK开发环境,我重新建立了一个IAR5.30工程,使用MDK库函数版本。
拷贝MDK库函数版本工程到一个工程目录下就好了,见下图。
几个icf文件要从其他地方考过来,不难的。
startup_stm32f10x_hd.s文件要使用IAR格式的,在IAR安装目录中有MDK,GCC,IAR三种格式的,需要使用IAR格式。
IAR开发环境设置。
这里要选择FULL ,不然会出现FILE not found 的错误。
上面的红圈很重要,第一个是头文件目录,必须要设置,工程下所有用到的.h文件第二个是宏定义,USE_STDPERIPH_DRIVER和STM32F10X_HD必须要添加,VECT_TAB_SRAM是正点原子工程中设置中断向量表到SRAM和FLASH中的宏定义,我使用SRAM调试,就需要定义这个宏了。
这里也很重要,这是设置SRAM和FLASH文件,我使用sram调试就利用SRAM那个icf文件了。
这是main.c文件,Systeminit();是我加上去的,如果不加好像也没有啥影响,不过在流水灯程序中如果不加,LED闪烁时间变慢,没有在MDK中的快。
所以,以后的工程,我都把这句加上了。
这是下载code到SRAM中的map文件,可以看到是下载到SRAM中,这样就可以调试了,上面说的是利用正点原子的库函数版本的程序,移植到IAR中的步骤,但是,我更喜欢使用寄存器版本的程序,因为条理和思路清晰,容易理解。
下面步骤是将寄存器程序移植到IAR中的,步骤和上面一样,但是要修改system.c文件,见下图,其中需要几句汇编,在IAR中是利用asm(“XXXX”);来声明嵌入汇编的。
下面是需要修改usart.c的文件,注释掉前面的#if 1,但是sys_exit()和重定义的fputc()需要保留。
然后寄存器版本的程序就可以移植到IAR5.30中了。
下图是在SRAM中调试寄存器版本的LCD测试程序界面。
应用MDK及IAR开发STM32F207流程一.开发工具及芯片1. 所用评估板为优易特的STM3220G-RDUET,所用主芯片为Cortex M3体系结构,芯片型号为STM32F207VGT6,最高主频可达120MHZ,内部1MB Flash,128KB SRAM。
开发板由核心板与底板组成,集成了USB、CAN、Ethernet、LCD,摄像头、SPI、SD卡等多种接口与模块。
在应用中主要对CAN、Ethernet、SPI、GPIO等模块和接口进行调试与评估。
2. 应用的开发工具为IAR 6.20及Keil的MDK 4.20。
在调试同一程序的前提下,在一个文件夹下建立两个子文件夹,用于建立两个不同的工程,分别支持IAR 6.20和MDK 4.20的调试。
二者共用官方提供的库文件及时钟配置文件。
二.MDK 4.20下建立工程与调试的方法MDK是Keil公司开发的一款基于ARM开发的编辑与调试工具,后被ARM公司收购。
在调试的过程中,通常采用将生成的代码下载到内部RAM中的方法,便于调试程序。
调试完成的目标代码应下载到芯片内部的Flash中运行。
以下分别介绍两种下载方式的配置方法。
1. 下载到内部Flash中运行方法建立工程及添加文件的方法这里不再描述,可以直接拷贝示例工程文件到目标文件目录中,工程文件夹下包括两个子文件夹:Libraries和Project,Libraries文件夹中主要存放了内核配置文件,官方提供的函数库文件及程序的引导代码,Project中包含了建立工程相关文件及主函数相关文件。
要设置调试方法,首先建立一个配置选项,在工程界面选择ProjectàManageàComponents, Environment, Books…选项,显示如图1所示界面:图1 Components, Environment, Books选项在Project Targets选项中新建STM3220G_EV AL_Flash配置选项,右侧的Groups为工程代码中包含的工作组,Files为每个工作组中包含的文件。
IAR建⽴stm32⼯程 stm32是⼀个当下⾮常流⾏的微控制器,很多⼈都加⼊了学习stm32的⾏列中,常⽤的stm32编译器有IAR和mdk两种,接下来是利⽤stm32固件库3.5在IAR下的建⽴的⼯程模板历程: 1、在常⽤的⽂件夹下新建⽴⼀个⽂件夹,根据个⼈喜好,分别建⽴如下⼏个⽂件夹,⽤于分别存放固件库中的⽂件和⽤户⾃⼰的⽂件 2、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar⽬录下的汇编⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\Startup 3、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x⽬录下的⽂件复制到刚刚建好的模板⽬录下F:\STM32-IAR\demo\CMSIS\System下 4、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver⽬录下的驱动⽂件复制到模板⽬录下F:\STM32-IAR\demo\FWLIB 5、将固件库E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template\EWARM⽬录下的.icf⽂件复制到模板⽬录F:\STM32-IAR\demo\Config中6、将固件库⽬录E:\STM32\stm32固件库3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的F:\STM32-IAR\demo\User下到此为⽌,建⼯程前的准备⼯作已经做好,接下来就是打开IAR进⾏建⽴⼯程了,打开IAR->File->New->Workspace,建⽴好⼯作空间后,选择Project->Create New Project 建⽴⼀个新的⼯程,接下来将⿏标放在界⾯左侧的⼯作空间处点击⿏标右键选择Add,添加⼯作组如下图,⽂件名模板⽂件夹中的名字相同加下来分别将模板⽂件家中的.C⽂件添加进⼯程到此为⽌需要添加的⽂件已全部添加进来了,接下来是对IAR的配置,依旧是将⿏标放在左侧的⼯作空间上点击右键选择Options进⾏配置,在General Options-Target-Device选择⾃⼰使⽤的相应芯⽚型号,General Options下其他选项保持默认即可,接下来是C\C++Compler按下图进⾏设置接下来的⼏项⼀次按接下来的图⽚设置就好接下来是最容易忽视的⼀个问题,图⽚上画圈的位置⼀定要选上,不然编译将出错最后在⼯程中加⼊main函数编译通过,⼀个模板就建好了。
开发工具:JLink V7.0开发环境:IAR5.3第一步:下载函数库从ST官方网站下载STM32 V3.0固件函数库。
第二步:复制库文件将下载的软硬件函数库解压后,将目录中的【Libraries】目录拷贝到您的项目目录中,然后【Project】目录下的【Template】目录下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h四个文件拷贝到您的目录下,然后将【Project】——【Template】——【EWARMv5】目录下的四个加载镜象文件复制到您的止录下。
所以这些完成后您的项目中的文件差不多如下图所示了:第三步:加载文件启动IAR5.3开发环境,选择在当前工作空间建立新项目,将提示工具选择,选择ARM即可;项目模板选择,直接选择空项目即可选择完毕后单击OK按钮,提示项目文件存放位置,直接存到之前新建的项目目录中即可。
然后按下图所示添加各文件组,并将相应的文件添加进去就可以了。
第四步:配置IAR 5.3右击项目文件(比如上图中的MyProject - Debug),选择右击菜单中的【Options】按钮,将出现项目配置选项卡。
选择【General Options】,在【Target】页中选择【Device】,再点击【Device】右侧的器件选择按钮,选择您的STM32芯片。
选择完毕后将如下图所示:选择【C/C++ Compiler】,再选择【Preprocessor】页在【Additional include directories】的文本框中,输入您的项目所需索引的头文件地址,配置完成后,将如下图所示:选择【Linker】,再选择【Config】页,将【Override Default】复选框选中,单击文本框右侧的文件选择按钮,在您的项目根目录中选择您要连接配置的文件(比如您准备将程序在Flash中运行,则选择stm32f10x_flash.icf),配置完成后,将如下图所示:选择【Debugger】,再选择【Setup】页,在【Driver】下拉选择框中选择【J-Link/J-Trace】,配置完成后,将如下图所示:完成以后操作后,点击Make命令按钮,提示保存Workspace file,输入您要保存的名称(比如就上面的项目就取名为MyProject),点击保存后,系统进行编译。
运行环境:编译器:IAR For ARM V6.4Jlink:JlinkV8 +JlinkARM V4.40库版本: CMSIS架构库文件这里值得说一下的是,就我目前使用的情况JlinkArmV4.40的驱动是最好的,后面高版本的更新Jlink后,不是正版的Jlink将会被锁死(JlinkArmV4.44d),,早期版本可能造成找不到jlink.dll的情况第一步:建立工程,增加group和源文件.首先打开IAR Wmbeded Workbench,”Project” ”Creat New Project”建立一个工程,命名选择路径保存建立好工程后,右击Add如下图,预先建立好一些方便管理的Group,然后分类在各个group 里增加源文件.为了看清楚我的工程的文件列表,下面贴两个图大家看看是我建立好的工程的界面工程建立好了之后,将说下自己环境变量的设置:(以下未提到的选项卡,我的设置是保持默认)第二步:设置编译环境,以下大部分只贴图,以下设置只是最简单的,保证工程可以通过,如果需要大家就得自己去查找设置了.按照上图所示进入设置界面,我只说一些我自己的设置,保持默认的就不再叙述了1.General Option选项卡里设置了两个选项卡:Traget 和Library Configuration,其他的保持默认Target 选项卡就不说了,大家一看就明白.至于Lib选项卡,自己根据需要,如果需要用到像printf一类函数的就需要设置成full,否则选none吧。
加库相当于家code了。
大家都懂得.2.C/C++Complier选项卡,我直接说我的配置了,直接看图吧Language1Language2Optimizations,选项卡意思是指优化等级,当使用最高等级的优化方式时,将会在三个选项中选择平衡,代码大小优先,执行速度优先, 不过在要求不严格的条件下,不建议选择优化.OuputPreprocessor这个选项卡就是设施我们包含头文件路径下面解释下头文件的包含问题:$PROJ_DIR$ :表示在工程文件所在目录$PROJ_DIR$\..\F4_StdPeriiph_Driver\inc \... 指从工程文件(.EWP, .EWW文件)所在目录返回上级目录搜索F4_StdPeriph_Driver目录,找到后进入搜素inc文件目录.. 在文件系统中表示返回到上级目录.main文件夹下的文件希望通过上述解释和两个图能让大家了解头文件相对路径的设置.还有一种绝对路径的设置例如:D:\WorkSpace\SoftWare\MyF4\CMSIS\Include绝对路径的缺点就是,当你把工程移动到另外一个盘后或者目录,再编译将产生一大堆找不到头文件的错误。
stm32软件开发流程总结1. 建⽴⼯程模板建相关⽂件夹,添加库⽂件配置系统宏定义和头⽂件包含路径mdk 软件配置2. 配置系统时钟系统时钟是整个系统运⾏的三要素之⼀(还有电源、复位),这⾥主要配置分频系数M、P 倍频系数 N3. 测试系统时钟配置完系统时钟,还要验证⼀下时钟是否是我们所期望的,这⾥提供⼏种⽅法,仅供参考:查看变量 SystmeCoreClock 的值通过硬件仿真查看内部时钟存在偏差,可通过修改校准寄存器的值修正,以下是修正前后从mco时钟输出引脚测得的内部⾼速时钟频率修正前:修正后:4. 配置系统打印调试串⼝嵌⼊式平台由于资源的限制,⼀般没有显⽰设备,所以通常通过串⼝调进⾏调试5. 看门狗在后台主循环⾥加⼊喂狗操作,可防⽌程序死循环,因得不到及时喂狗,导致程序复位在中断⾥加⼊喂狗操作(喂狗间隔时间⼀定要长于主循环⾥的喂狗时间),防⽌中断意外关闭6. RTCRTC可以为系统提供时间信息,定时中断(唤醒)7. GPIO ⼝操作GPIO 操作流程:1)打开外设端⼝时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);2)填充 GPIO_Init_TypeDef 结构体3)调⽤Gpio_Init() 配置端⼝注意:调⽤Gpio_Init() 函数之前必须先打开外设端⼝时钟8. 定时器定时器实现精确定时脉冲计数pwm脉冲9. 中断中断是前后台系统运⾏的关键,可提⾼程序的响应能⼒中断编写注意事项:10. I2CI2C是系统重要的内部总线,⽤于连接mcu和⽚上其他外设,只需2根线即可实现数据通讯11. SPISPI是⾼速的内部总线12. 搭建系统框架裸机程序规模增⼤之后,如果不搭建⼀个合适的系统框架,系统维护和扩展将会是⼀件棘⼿的⼯作,常见的系统框架如下:1)时间⽚轮询系统2)基于消息轮询的系统3)转态机13. ⾯向对象的思想编程⽤结构体实现封装结构体成员变量表⽰属性结构体函数指针成员变量表⽰⽅法14. ⾯向接⼝的编程⾯向接⼝的编程有如下优点:⾼内聚,低耦合提⾼系统的可扩展性和可维护性为实现分层提供了有⼒的保障。
stm32开发流程STM32开发流程。
STM32是一款广泛应用于嵌入式系统的32位微控制器,它具有丰富的外设和强大的性能,因此在各种领域都有着广泛的应用。
在进行STM32开发时,我们需要按照一定的流程来进行,下面将介绍一下STM32开发的基本流程。
第一步,准备开发环境。
在进行STM32开发之前,我们需要准备好相应的开发环境,包括开发板、编译器、调试工具等。
常用的开发板包括ST官方的Discovery系列和Nucleo系列,编译器可以选择Keil、IAR等,调试工具可以选择ST-LINK、J-Link等。
在选择开发环境时,需要考虑到项目的实际需求和自身的熟悉程度,选择合适的工具能够提高开发效率。
第二步,创建工程。
在选择好开发环境之后,我们需要创建一个新的工程来进行开发。
在Keil中,可以通过File->New来创建一个新的工程,然后选择对应的芯片型号。
在创建工程的过程中,需要设置好工程的名称、存储路径等信息,确保工程能够被正确地保存和管理。
第三步,编写代码。
在创建好工程之后,我们就可以开始编写代码了。
在进行STM32开发时,通常会使用C语言来编写程序。
我们可以根据项目的需求,编写相应的初始化代码、驱动代码和应用代码,实现相应的功能。
在编写代码的过程中,需要注重代码的可读性和可维护性,合理地组织代码结构,添加必要的注释,以便后续的调试和维护工作。
第四步,编译和下载。
在完成代码编写之后,我们需要进行编译和下载的工作。
在Keil中,可以通过Build->Build Project来进行编译,编译成功之后会生成相应的hex文件。
然后,我们可以通过调试工具将hex文件下载到目标板上进行调试。
在下载过程中,需要注意选择合适的下载方式和参数,确保程序能够正确地下载到目标板上并运行。
第五步,调试和测试。
在程序下载到目标板之后,我们需要进行相应的调试和测试工作。
通过调试工具,我们可以对程序进行单步调试、断点调试等操作,定位和解决程序中的问题。
1: IAR破解版安装,因为看考虑到自己用的是MDK所以这里将不进行说明,以后自己用的着时再下载IAR破解版安装2:IAR安装固件库,起始MDK5是不需要安装的,为了以后安装IAR还得做一下笔记。
1:下载ST公司的固件库,解压。
2:将固件库中的的arm/config/divice拷贝到IAR中的相同文件夹将固件库中的的arm/config/flashloder考到IAR中的相同文件夹中去固件库的功能给出了STM32温控制器所有底层驱动函数,所有代码是C代码移植非常容易,函数根据他的功能命名。
固件库的其他文件:FWLIB下的文件有如下文件夹example 、library 、projict Example下文件:main.C例程主函数Stm32f10x_it.c:包含所有中断服务程序,不适用的中断服务程序函数体为空。
Stm32f10x_it.h: 包含所有中断服务程序的原型Stm32f10x_config.h该文件设置了所有用到的外设,没用到的可以将它屏蔽Readme。
Test是说明文档library 包含了组成固件核心所有文件,其下面有如下文件Inc文件夹包含固件所需的所有头文件,其下面有如下文件Stm32f10x_teype.h包含其他文件所需要的数据类型和枚举行Stm32f10x_map。
H所有存储器映像和寄存器数据结构Stm32f10x_lib.h:包含所有外设头文件(在程序中只要包含了这个头文件那么其它的外、设头文件就全加入进来)Stm32f10x_PPP。
H(外设头文件)Stm32f10x_macorl.h操作内核的头文件SRC文件夹下Stm32f10x_PPP.C外设程序原形Stm32f10x_lib。
C初始化所有外设指针Projict问价夹的内容是包含了一个标准化程序项目模板Stm32f10x_config.hStm32f10x_it.cStm32f10x_it.h:Main.cEW ARM4 EW ARM5 HITOP RIDE RVMDK 文件夹,用于不同的开发环境移植这个projict,IAR选用的是EWARM4。
■利用STM32的官方库在Keil uVision 4中新建一个工程的步骤:一. 新建工程时的软件操作,工程配置方法:1. 点击菜单栏的Project→New uVision Project,新建一个工程文件,取名,设置好保存路径后,点击“保存”即可。
2. 接着弹出一个对话框,选择芯片型号,我们用的是ST公司的STM 32F103VE,选择该芯片,点击“OK”即可。
3. 接着弹出的对话框,如下,问我们是否要拷贝STM 32的启动代码到工程文件中,这份启动代码在M 3系列中都是适用的,我们可以点击“是”。
但是,这里用ST的固件库创建工程,库里面也有启动代码文件,为了保持库的完整性,我们就不需要开发环境自带的启动代码了,稍后,我们手动添加,所以这里,我们点击“否”。
4. 此时,已经新建了一个工程,但是,里面还没有我们所需的文件,接下来,就该添加所需文件了。
在工程的根目录 ( 即,保存工程的文件夹下 ) 新建以下3个文件夹,User,FWlib,CMSIS。
User用来存放工程文件和用户代码,包括主函数main.c。
FWlib用来存放固件库里面的inc和src这两个文件夹以及它们里面的所有文件,这里面包含了芯片上的所有外设的驱动。
CMSIS用来存放固件库的启动文件,和,M 3系列通用的文件。
CMSIS里面的文件适合所有M 3内核的单片机。
CMSIS的缩写为,Cortex Microcontroller Software Interface Standard,是ARM Cortex微控制器软件接口标准,是ARM公司为芯片厂商提供的一套通用的且独立于芯片厂商的处理器软件接口。
5. 把固件库的Libraries \ STM32F10x_StdPeriph_Driver目录下的inc和src这两个文件夹复制到刚才新建的FWlib文件夹中。
6. 把固件库的Project \ STM32F10x_StdPeriph_Template目录下的main.c,stm32f10x_conf.h,stm32f10x_it.h,stm32f10x_it.c复制到User文件夹下。
IARforARM7.1建立STM32的项目工程IAR for ARM 7.1建立STM32的项目平台在实际工作中,一个嵌入式项目的软件需要由多个工程组成,比如boot、APP、library 等,而且每个工程可能要求生成的可执行文件有bin、hex、mfg等,要解决这些问题,很多人的办法就是建立一个工程,针对不同的要求对IAR进行不同的配置,但是这样建立一个平台,很难管理,容易混乱。
我在了解IAR的基础上发现一个新的方法,在同一个workspace 中建立不同的project,进行统一管理。
一、建立基本的项目平台在建项目平台前需要做一些准备,选择一个盘建立“Platform”文件夹,在“Platform”文件夹下建“boot”、“HardWareTest”、“Project”、“Src”四个文件夹,“boot”用来存放bootloader 工程程序,“HardWareTest”用来存放硬件自动测试工程程序,“Project”用来存放项目平台建立时生产的文件,“Src”用来存放STM32uCOSⅢ工程的应用程序。
下面开始建项目平台吧。
步骤一:新建一个IAR for ARM工程,File -> New -> Workspac创建一个新的工作空间,然后通过Project –> Create New Project建立一个ARM的Empty project,点击“OK”后弹出工程保存菜单,填写工程名“STM32uCOSⅢ”,然后点击“保存”,第一个工程建立完毕。
步骤二:再建一个工程,通过Project –> Create New Project建立一个ARM的Empty project,点击“OK”后弹出工程保存菜单,填写工程名“BOOT”,然后点击“保存”,第二个工程建立完毕。
步骤三:建第三个工程,通过Project –> Create New Project建立一个ARM的Empty project,点击“OK”后弹出工程保存菜单,填写工程名“HardWareTest”,然后点击“保存”,第三个工程建立完毕。
stm32标准外设库开发工程新建流程
STM32标准外设库开发工程新建流程如下:
1. 打开Keil MDK-ARM软件,点击“File”菜单,选择“New”-
>“Project”。
2. 在弹出的“Project Name”对话框中输入工程名称,并选择工程保存路径。
3. 在“Project Type”中选择“Microcontroller Wizard”选项,然后点击“Next”。
4. 在“Device”中选择目标STM32芯片型号,并选择合适的启动文件。
5. 在“Toolchain/IDE”中选择Keil MDK-ARM,然后点击“Next”。
6. 在“Options”中设置工程选项,如优化级别、代码生成选项等,然后点击“Finish”。
7. 在弹出的“Project Explorer”窗口中,右键点击工程名称,选择“New”->“Source File”或“Header File”,输入文件名,添加代码或头文件。
8. 在工程中添加其他必要的文件,如启动文件、配置文件等。
9. 配置工程选项,如链接脚本、启动文件等。
10. 编译并烧写程序到目标板中。
以上是STM32标准外设库开发工程新建流程的基本步骤,根据具体情况可能需要做一些调整和修改。
STM32 在IAR 的开发步骤
我也是刚开始接触stm32,前几天开始在IAR 上做程序,发现很多网上
写的建立程序步骤已不适于新版本的IAR,遇到不少问题,每个问题都得自
己解决,最后在一些网友的帮助下,终于成功建立了第一个程序。
现在我写出STM32 在IAR 建立工程的步骤与大家分享,希望能帮大家解
决一些问题。
我使用的是IAR5.3 版本,固件库3.0 版本(注意查看你的固件库是不是3.0,3.0 以上的版本大致相同)
第一步,先建立一个文件夹,该文件夹将放所有与项目有关的文件,并将ST 公司提供的固件函数库(Libraries)复制到该文件夹下,并在该文件中在建立一个文件,命名为project,再创立一个文本文档,命名为readme 如图所示
打开project,将4 个文档复制到该文件夹下(可在ST 公司提供的任一个
例程中找到这些文档),再新建一个文件夹,命名为EWARMv5,如图。
如何在IAREWARM下建⽴⼯程和配置STM32开发环境本⽂说明如何在Windows XP操作系统上,使⽤IAR Embedded Workbench for ARM 5.30建⽴⼀个IAR项⽬,并且配置STM32开发环境。
⼀、⽣成⼀个新项⽬要使⽤IAR进⾏STM32嵌⼊式系统开发,必须从建⽴⼀个项⽬(project)开始,下⾯以在E:\下建⽴⼀个名为Example的项⽬为例介绍。
1. 创建项⽬⽬录、复制公共⽂件(1)在E盘下创建名为的Example⽂件夹,即项⽬根⽬录为E:\Example。
(2)在项⽬根⽬录下建⽴⼀个EWARMv5⽂件夹⽤于存放项⽬⽂件、⼯作空间⽂件和项⽬配置相关⽂件。
(3)解压标准外设驱动⽂件库(stm32f10x_stdperiph_lib_V3.1.2.zip),将其中的“Libraries”⽂件夹复制到Example⽬录下。
(4)复制标准外设驱动库⽬录Project\Template下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个⽂件到Example ⽂件夹下。
main.c可以不⽤复制,我们⾃⼰写。
复制标准外设驱动库⽬录Project\Template\EWARMv5下的stm32f10x_flash.i cf、stm32f10x_flash_extsram.icf、stm32f10x_nor.icf和stm32f10x_ram.icf到Examp le\EWARMv5⽂件夹下。
复制好的⽬录如图1所⽰。
图1. Example⽂件夹下的⽂件2. 创建新的⼯作空间嵌⼊式系统开发⼤都是⾯向项⽬(Project)的,需要建⽴Project来管理项⽬开发。
IAR EWRAM⼜是基于⼯作空间(Workspace)的集成开发环境,Project必须放在⼯作空间⾥⾯,所以我们⾸先应该建⽴⼯作空间。
⼀个⼯作空间⾥⾯可以放多个项⽬。
开始→程序→IAR Systems→IAR Embedded Workbench,进⼊IDE环境。
IAR为STM32新建⼯程模板(最详细)今天给⼩伙伴分享⼀篇给stm32新建⼯程模版1、⾸先打开IAR,就是这个样⼦2、再建⼀个⽬录⽂件夹3、建⽴⼀个⼯作空间,以及建好⼯作空间如右图所⽰4、接下来建⽴⼯程,Project--------Creat New Project点击Empty project-------------再点击OK选择你之前创建的⽬录⾥⾯,取个名字再保存就⾏了保存之后就是这个样⼦5、这个时候再点保存,就像下图,会跳出⼀个窗⼝(如图),这个是保存你的⼯作空间,取个名字(⽤原来的⼯程名字都⾏),点保存就⾏6、接下来添加分组7、我们要多多添加这样的⼏个分组,如下8、在我们之前的⽬录⾥⾯也创建如下的⽂件夹9、按图⽰操作把下载的库⽂件夹⾥的这部分复制到之前创建的⽂件夹⾥10、按照图⽰,把iar⽂件夹⾥的启动⽂件全部复制到Startup内11、再把这三个⽂件复制到Startup⽂件夹内12、继续复制⽂件,把标准库内(图⽰)⽬录下的三个⽂件复制到User⽬录下,之前少做了⼀件事要把Startup⽂件夹⾥⾯的stm32f10x.h移到User⽂件夹内,这样看的美观⼀些。
13、导⼊⽂件,之前少创建了⼀个分组,补上如图所⽰导⼊⽂件的如下(如图):这⾥要注意⼀点,startup_stm32f10x_md.s这个⽂件是需要根据你的单⽚机型号来定的,不同型号的单⽚机这个启动⽂件不⼀样,我这⾥是stm32f103c8t6单⽚机14、在App⾥⾯创建⼀个main.c14、接下来配置⼯程15、选择单⽚机的型号16、将库配置选成Full,再勾选下⾯的Use CMSIS17、将char类型改成有符号型18、接下来就是极为重要的⼀件事,添加group⾥⾯.c⽂件的路径,黄⾊框的⽂件都要点进去,再点确认添加完成的路径图⽚是这样的19、到这⾥,已经完成了七七⼋⼋,把⿏标点击到main.c,来编译⼀下,就是图中的图标这样编译会出现好多个错误,⼀看到这么错误肯定会慌不要慌不就是这样的错误么,英⽂意思是请选择你应⽤中的单⽚机型号的启动⽂件点击这个错误可以定位到这⾥也就是说⼯程⾥缺少 #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) 这么多宏⾥⾯的⼀个所以我的单⽚机stm32f103c8t6的启动⽂件是STM32F10X_MD,按下图所⽰,添加这个东西之后,再编译20、再编译之后是下图这也是有原因的,我们点击⼀个警告错误,这个是初学者可能不懂,再把这个 USE_STDPERIPH_DRIVER 添加进去你们肯定会疑问为什么要添加这个这个宏,如下图所⽰看红框⾥⾯的斜蓝⾊字体,意思⼤致就是“如果你不使⽤外设驱动,在这种情况下,这些驱动不会被包括并且这些应⽤代码会直接基于外设寄存器”,所以我们需要这样的宏,再编译就显⽰没有错误,没有警告。