IAR开发环境及IAR固件库_第1页
IAR开发环境及IAR固件库_第2页
IAR开发环境及IAR固件库_第3页
IAR开发环境及IAR固件库_第4页
IAR开发环境及IAR固件库_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三讲第三讲IAR开发环境及开发环境及IAR固件库固件库IAR的固件库n由ST公司开发,包括驱动程序和应用函数的函数库n版本:3.4n优点:q入手快q便于开发,节约时间n缺点:q结构复杂繁琐q原理不够清晰一、IAR工程建立步骤一:创建项目目录,拷贝公共文件1 1、将、将STM32STM32的的3.03.0版本的版本的软件库中,将软件库中,将LibrariesLibraries目录拷贝到用户自建项目录拷贝到用户自建项目目录中目目录中2 2、将从软件库的、将从软件库的ProjectTemplateProjectTemplate目录中,将目录中,将main.cmain.c、stm32f10 x_co

2、nf.hstm32f10 x_conf.h、stm32f10 x_it.cstm32f10 x_it.c、stm32f10 x_it.hstm32f10 x_it.h拷拷贝贝到用户的目录中到用户的目录中步骤一:创建项目目录,拷贝公共文件1 1、将、将STM32STM32的的3.03.0版本的版本的软件库中,将软件库中,将LibrariesLibraries目录拷贝到用户自建项目录拷贝到用户自建项目目录中目目录中2 2、将从软件库的、将从软件库的ProjectTemplateProjectTemplate目录中,将目录中,将main.cmain.c、stm32f10 x_conf.hstm32f

3、10 x_conf.h、stm32f10 x_it.cstm32f10 x_it.c、stm32f10 x_it.hstm32f10 x_it.h拷拷贝贝到用户的目录中到用户的目录中步骤一:创建项目目录,拷贝公共文件(续)3 3、从软件库的从软件库的Project Project EWARM5EWARM5目录中,目录中,将将相关相关链接文件链接文件( (* *.icf).icf)拷贝拷贝用户的项目目录中用户的项目目录中二、创建工程n打开IAR Embedded Workbench IDE,并新建workspace,再创建Project,创建过程由下图;二、创建工程二、创建工程n点击OK后在弹出

4、的对话框导航至之前创建的stm32_uart,并命名该工程为stm32_uart。二、创建工程n点击保存后,便完成工程创建,结果如图所示。三、添加组n右击工程名字,然后选择Add-Add Group添加工作组EVARM、User、Doc,保存,如图所示;三、添加组n添加完成工作,如右图所示;四、加载工程文件n在目标工作组点击右键Add-Add Files,选择需要添加的文件即可,添加后的效果如图所示;其中,其中, system_stm32f10 x.c在在LibrariesCMSISCM3DeviceSupportSTSTM32F10 x文件夹,文件夹,startup_stm32f10 x_m

5、d.s在在LibrariesCMSISCM3DeviceSupportSTSTM32F10 xstartupiar文件夹,文件夹,StdPeriph_Driver下的文件均在下的文件均在LibrariesSTM32F10 x_StdPeriph_Driversrc文件夹下;文件夹下;步骤五:Option设置(1)在项目名称上单击右键选择在项目名称上单击右键选择Option,或,或点击菜单点击菜单ProjectOption。步骤五:Option设置(2):General Optionn设置设置 Taget单击芯片选择按钮,单击芯片选择按钮,选择选择ST系列芯片:系列芯片:STSTM32F10 x

6、xEEndian mode选择:选择:Little在在Processor Variant中选择中选择“Device”步骤五:Option设置(3):C/C+ Compile An设置设置 Language选择你使用的语言选择你使用的语言选择使用语言的规范选择使用语言的规范Plaincharis: Signed表明使用表明使用char定定义的变量为有符号的;义的变量为有符号的; Unsigned表明使用表明使用char定义的变量为有符号的。定义的变量为有符号的。选择函数使用前是否选择函数使用前是否需要原型需要原型使用使用High级别优化时,可选:级别优化时,可选:1. 平衡平衡(Balanced

7、)2. 代码代码(Size)3. 速度速度(speed)步骤五:Option设置(3):C/C+ Compile Bn设置设置 Optimization根据使用需求选择优化方案:根据使用需求选择优化方案:1. None - 用于调试用于调试2. Low3. Medium4. High - 用于最终代码用于最终代码用户可以根据需求对某些优化用户可以根据需求对某些优化功能进行取舍。功能进行取舍。根据需求选择是否输出相关列表信息根据需求选择是否输出相关列表信息步骤五:Option设置(3):C/C+ Compile Cn设置设置 Output根据需求选择是否生成调试信息文件根据需求选择是否生成调试信

8、息文件n设置设置 List步骤五:Option设置(3):C/C+ Compile Dn设置设置 Preprocessor设置设置*.h文件所在的位置文件所在的位置根据用户的应用,设置相关根据用户的应用,设置相关Define的内容的内容“$PROJ_DIR$”-指当指当前项目所在的目录前项目所在的目录步骤五:Option设置(4):Output Convertern设置设置 Output使能是否输出目标文件使能是否输出目标文件用户可以选择输出文件用户可以选择输出文件的格式的格式用户可以设置输出文件用户可以设置输出文件的文件名的文件名步骤五:Option设置(5):Linkern设置设置 Con

9、fig打开打开Override default 选选项:项:在Flash中调试程序,选用STM32F10 x_flash.icf;在RAM中调试程序,选用STM32F10 x_RAM.icf;在进行该项设置时,请确在进行该项设置时,请确认电路板上的认电路板上的Boot0和和Boot1引脚的跳线连接是引脚的跳线连接是否正确!否正确!步骤五:Option设置(6):Debugger An设置设置 Setup选择使用的调试工具选择使用的调试工具开启该选择,可以开启该选择,可以设定调试起始点。设定调试起始点。步骤五:Option设置(6):Debugger Bn设置设置 Download1. 选择下载

10、程序到选择下载程序到Flash中调中调试时,可选:试时,可选: Verify download Use flash loader(s) (必须开启!必须开启!)2. 选择下载程序到选择下载程序到RAM或使或使用模拟器:无需选择。用模拟器:无需选择。3. 如果程序已下载到如果程序已下载到Flash中中,再次调试时选择:,再次调试时选择: Suppress download步骤六:编译项目使用菜单使用菜单ProjectRebuild All编译项目编译项目在在Message窗口查窗口查看编译结果;如果有看编译结果;如果有错误双击进行修改。错误双击进行修改。步骤七:调试(一)使用菜单使用菜单Proj

11、ectDebug或单击或单击Debug按钮进入调试状态按钮进入调试状态如果在如果在Flash中调试中调试程序时,出现下载程序时,出现下载进程对话框。进程对话框。步骤七:调试(二)使用菜单使用菜单Debug中的调试菜单或中的调试菜单或工具条进行调试工具条进行调试二、stm32库函数PPP:某一外设名称说明n每一个外设都有一个对应的源文件:stm32f10 x_ppp.c和一个对应的头文件:stm32f10 x_ppp.hn文件stm32f10 x_ppp.c包含了使用外设PPP所需的所有固件函数n文件stm32f10 x_ppp.h包含了.c文件所需的预定义,函数声明以及变量定义等n同时,外设需

12、要在时钟控制下工作,因此会用到时钟的头文件说明nCM3对包括外设的所有存储设备统一编址,因此在头文件中包含了存储器的映射关系stm32f10 x_map.hn该文件也包含了所有寄存器的声明n用户文件与库文件通过stm32f10 x_lib.h建立关系,该文件中定义了所有外设头文件的头文件,用于声明头文件,因此需要include在用户的文件中n而文件stm32f10 x_conf.h则指定具体的参数,用户可以对此文件进行修改外设的操作步骤nPPP代表任意外设n1. 在主应用文件中,声明一个结构PPP_InitTypeDef,例如: PPP_InitTypeDef PPP_InitStructur

13、e; 这里PPP_InitStructure是一个位于内存中的工作变量,用来初始化一个或者多个外设PPP。外设的操作步骤n2. 为变量PPP_InitStructure的各个结构成员填入允许的值。按照如下程序设置整个结构体PPP_InitStructure.member1 = val1; PPP_InitStructure.member2 = val2; PPP_InitStructure.memberN = valN; n3. 调用函数PPP_Init(.)来初始化外设PPP。n4. 在这一步,外设PPP已被初始化。可以调用函数PPP_Cmd(.)来使能之。PPP_Cmd(PPP, ENAB

14、LE); 可以通过调用一系列函数来使用外设。每个外设都拥有各自的功能函数。外设的操作步骤n注:n1. 在设置一个外设前,必须调用以下一个函数来使能它的时钟: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx, ENABLE); n2. 可以调用函数PPP_Deinit(.)来把外设PPP的所有寄存器复位为缺省值: PPP_DeInit(PPP) 外设的操

15、作步骤n注:n3. 在外设设置完成以后,继续修改它的一些参数,可以参照如下步骤: PPP_InitStucture.memberX = valX; PPP_InitStructure.memberY = valY; PPP_Init(PPP, &PPP_InitStructure); 仅为arm公司粗略设计的存储器映射图,不同厂家根据需要,设计自己的存储器映射(对应)关系,以及各存储器的大小。关于存储器映射关系Bit-Bandn处理器存储器映射包括两个bit-banding 区域。它们分别为SRAM 和外设存储区域中的最低的1MB。n作用:将存储器别名区的一个字映射为bit-band

16、区的一个位n即:在别名存储区写入一个字具有对位段区的目标位执读-改-写操作的相同效果。n目的:所有STM32F10 x外设寄存器都被映射到一个位段(bit-band)区。在各个函数中对单个比特进行置1/置0操作时被大量使用,用以减小和优化代码尺寸。Bit-BandBit-Bandn如何对应?n映射公式:nbit_word_offset = (byte_offset x 32) + (bit_number 4)nbit_word_addr = bit_band_base + bit_word_offset n其中: nbit_word_offset是目标位在存取器位段区中的位置bit_word_

17、addr 是别名存储器区中字的地址,它映射到某个目标位。nbit_band_base 是别名区的起始地址。nbyte_offset 是包含目标位的字节在位段的序号bit_number 是目标位所在位置(0-31) Bit-Bandexamplen设置地址0 x2000_0000 中的比特2,则:bit_word_offset = (byte_offset x 32) + (bit_number 4) =0*32+2*4=8bit_word_addr = bit_band_base + bit_word_offset =0 x22000000+8=0 x2200008examplen设置地址0

18、x2000_0000 中的比特2,则:寄存器RCC_CR的PLLON24位,映射到别名区: #define PERIPH_BASE (u32)0 x40000000) #define PERIPH_BB_BASE (u32)0 x42000000) #define RCC_OFFSET (RCC_BASE - PERIPH_BASE) #define CR_OFFSET (RCC_OFFSET + 0 x00) #define PLLON_BitNumber 0 x18 #define CR_PLLON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32 (PLLON_B

19、itNumber * 4) n一、什么是GPIO? nGPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。Example:GPIO控制n硬件资源分配:硬件资源分配:nPC6-PC9分别连到4个LED,定义为L

20、ED14跑马灯实验控制过程n点亮LEDn相应管脚输出高电平n即相应管脚置1n管脚如何控制?n特殊寄存器(端口配置寄存器)Example:GPIO控制nGPIO寄存器结构nGPIO寄存器结构,GPIO_TypeDef和AFIO_TypeDef,在文件“stm32f10 x_map.h”中定义如下:n typedef struct n vu32 CRL; nvu32 CRH;n vu32 IDR; nvu32 ODR;n vu32 BSRR;n vu32 BRR; nvu32 LCKR; n GPIO_TypeDef; ntypedef struct nvu32 EVCR; nvu32 MAPR;

21、 nvu32 EXTICR4; nAFIO_TypeDef; Example:GPIO控制n五个GPIO外设声明于文件“stm32f10 x_map.h”: n#define PERIPH_BASE (u32)0 x40000000) n#define APB1PERIPH_BASE PERIPH_BASEn #define APB2PERIPH_BASE (PERIPH_BASE + 0 x10000)n#define AHBPERIPH_BASE (PERIPH_BASE + 0 x20000) .n#define AFIO_BASE (APB2PERIPH_BASE + 0 x0000) n#define GPIOA_BASE (APB2PERIPH_BASE + 0 x0800) n#define GPIOB_BASE (APB2PERIPH_BASE + 0 x0C00) n#define GPIOC_BASE (APB2PERIPH_BASE + 0 x1000) n#define GPIOD_BASE (APB2PERIPH_BASE + 0 x1400) n#define GPIOE_BASE (APB2PERIPH_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论