STM32F10X系统介绍.ppt
61页STM32F10XSTM32F10X系系统介介绍参考资料:•[1] STM32F10x_Firmware_Library_User_Manual_V2.0.pdf•[2] STM3210xReference.pdf•[3] STM32F103xDatasheet.pdf第1章 STM32F10X系统介绍1.1 STM32F10X 的简介及应用前景STM32F10X系列产品是目前最新的单片机,它的功能十分强大,它不仅具有嵌入式CPU的内核,而且还具有非常丰富的外围接口电路 STM32F10X系列CPU即可以当8位、16位和32位单片机使用,也可以当嵌入式CPU使用,装载操作系统1.1.1 ARM CortexM3 处理器简介•CortexM3 处理器使用了ARM v7M 体系结构它包含了一个高效的哈佛结构的三级流水线,可提供 1.25 DMIPS/MHz 的性能•CortexM3 处理器采用了与系统部件紧偶合的实现方法,来缩小芯片的面积,CortexM3 处理器实现了 Thumb2指令集构架,具有很高的代码密度,可降低存储器的需要,并能达到非常接近 32 位 ARM指令集的性能。
CortexM3 处理器具有以下优势:•小的处理器内核、系统和存储器,可降低器件成本;•完整的电源管理,很低的功耗;•突出的处理器性能,可满足挑战性的需要;•快速的中断处理,满足高速、临界的控制需求;•可选的存储器保护单元( MPU ),提供平台级的安全性;•增强的系统调试功能,可加快开发进程;•没有汇编代码要求,简化系统开发;•宽广的适应范围:从超低成本的微控制器到高性能的 SoC1.1.2 STM32 系列控制器简介•STM32系列系列32位微控制器(位微控制器(MCU)基于突破性的)基于突破性的ARM Cortex™-M3 内核,这是内核,这是ST公司开发的一公司开发的一款专为嵌入式应用的内核款专为嵌入式应用的内核•特点特点–易用性易用性–集成性集成性–低功耗低功耗–低价格低价格STM32功能简介试验箱试验箱MCU::STM32F10X•核心核心– ARM 32位的位的Cortex-M3™CPU– 72MHz,高达,高达90DMips,,1.25DMips/MHz– 单周期硬件乘法和除法单周期硬件乘法和除法——加快计算加快计算•存储器存储器–从从32K字节至字节至128K字节闪存字节闪存程序存储器程序存储器– 从从6K字节至字节至20K字节字节SRAM– 多重自举功能多重自举功能与之比较的与之比较的16位位DSP TMS320LF2407•核心核心–16位处理器位处理器–最高最高40MHz•存储器存储器–32K字节字节–SRAM::2K–只能从只能从FLASH启动启动功能简介(续)•多种外设接口多种外设接口–ADC::2路路12位(位(16通道);通道);–DMA::7通道通道–定时器:共定时器:共7个,包括个,包括6路路PWM,,2路路16位看位看门狗等门狗等–通信接口:通信接口:•2个个I2C;;•3个个USART•2个个SPI;;•CAN接口;接口;•USB接口接口•JTAGSTM32F10X系列CPUSTM32F10X按存储器的容量、封装、外围接口的数量形成了32位单片机的系列产品。
它主要分成基本型STM32F101xx 和增强型STM32F103xx 两大类Flash Size (bytes)128 K100 pins LQFP/BGASTM32F103R8STM32F103RBSTM32F103C832 K64 KSTM32F103VBSTM32F103V864 pins LQFP/QFN (>256K)48 pinsLQFP0 KSTM32F103C6STM32F103R6256 K512 K144 pins LQFP/BGA•72MHz CortexTM-M3 CPU–6KB to 64KB SRAM–Two lines: Performance and Access–FULL compatibility across familySTM32F101R8STM32F101RBSTM32F101C8STM32F101VBSTM32F101V8STM32F101C6STM32F101R6STM32F103RCSTM32F103VCSTM32F101RCSTM32F101VCSTM32F103RESTM32F103VESTM32F101RESTM32F101VESTM32F103ZCSTM32F101ZCSTM32F103ZESTM32F101ZESTM32F103CBSTM32F101CBSTM32F103T8STM32F103T6STM32F101T8STM32F101T636 pinsQFNSTM32F103RDSTM32F103VDSTM32F101RDSTM32F101VDSTM32F103ZDSTM32F101ZD384 KSTM32F10X系列产品系列产品1.1.3 STM32F10X 的主要功能1、STM32F10X的内核•ARM 32位的Cortex™M3CPU•72MHz,高达90DMips,1.25DMips/MHz•单周期硬件乘法和除法——加快计算 2、存储器•从32K字节至128K字节闪存程序存储器•从6K字节至20K字节SRAM•多重自举功能 3、时钟、复位和供电管理•2.0至3.6伏供电和I/O管脚•上电/断电复位(POR/PDR)、可编程电压监测器(PVD)、掉电监测器•内嵌4至16MHz高速晶体振荡器•内嵌经出厂调校的8MHz的RC振荡器•内嵌40kHz的RC振荡器•内嵌PLL供应CPU时钟•内嵌使用外部32kHz晶体的RTC振荡器4、低功耗•3种省电模式:睡眠、停机和待机模式•VBAT为RTC和后备寄存器供电 4、STN32F10X主要由下列外围构成•2个12位模数转换器,1us转换时间(16通道)转换范围是0至3.6V,双采样和保持功能,温度传感器。
•7通道DMA控制器,支持的外设有:定时器、ADC、SPI、I2C和USART •多达80个快速I/O口,26/36/51/80个多功能双向5V兼容的I/O口,所有I/O口可以映像到16个外部中断 •多达7个定时器,多达3个同步的16位定时器,每个定时器有,多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道,16位6通道高级控制定时器,多达6 路PWM 输出,死区控制、边缘/中间对齐波形和紧急制动,2个看门狗定时器(独立的和窗口型的),系统时间定时器:24位的、带自动加载功能的 •多达2个I2C接口(SMBus/PMBus)•多达3个USART接口,支持ISO7816,LIN,IrDA接口和调制解调控制 •多达多达2个个SPI同步串行接口同步串行接口(18兆位兆位/秒秒)•CAN 接口接口(2.0B 主动主动)•USB 2.0 全速接口全速接口•调试模式调试模式•串行线调试串行线调试(SWD)和和JTAG接口接口1.1.4 STM32F10X 的应用前景n销售终端机¡银行卡读卡器¡超市收银机¡扫描仪nUSB 设备¡生物认证和安全设备¡读卡器n工业自动化¡程序控制器¡工业网络n消费电子¡PC附属设备¡数码相机、GPS导航仪¡卫星n安防设备安防设备¡报警系统 ¡控制面板n医药卫生医药卫生¡监护仪¡检测设备n其它其它¡电池管理¡……强大的工具支持Compilers and IDEIDE and debuggers, GNU compilersDevice Programming1.2 系统主构架CORTEXM3 CPU72 MHz72 MHzUp to 20kB SRAM64kB to come in 2008ARM Peripheral Bus(max 72MHz)(max 72MHz)2x2x 12-bit ADC16 channels / 1Msps2x I2C1x SPI2x USART/LINSmartcard / IrDaModem Control32/49/80 I/OsUp to 16 Ext. ITsFlash I/F32kB-128kBFlash Memory512kB to come in 2008Temp Sensor1x USB 2.0FS1x USB 2.0FS1x bxCAN 2.0B1x bxCAN 2.0B1x 16-bit PWM 1x 16-bit PWM Synchronized AC TimerSynchronized AC TimerIndependent Watchdog3x 16-bit TimerJTAG/SW DebugXTAL oscillators32KHz + 4~16MHzPower SupplyReg 1.8VPOR/PDR/PVDDMA 7 ChannelsNested vect IT Ctrl1x USART/LINSmartcard/IrDaModemCtrl1x SPIBridgeBridge1x Systic TimerARM Lite Hi-Speed BusMatrix / Arbiter (max 72MHz)(max 72MHz)Int. RC oscillators40KHz + 8MHzPLLReset Clock ControlRTC / AWUARM Peripheral Bus(max 36MHz)(max 36MHz)20B Backup RegsWindow WatchdogSTM32单片机单片机系统框系统框图图1.2.1 STM32F10X 主系统的组成•四个驱动单元:CortexM3内核ICode总线(Ibus),DCode 总线(Dbus) ,和系统总线(Sbus) ,GPDMA(通用DMA) •三个被动单元:内部SRAM ,内部闪存存储器,AHB到APB的桥(AHB2APBx),它连接所有的APB 设备系统结构如下图所示:1.2.2 STM32F10X 主系统各单元的含义•1. ICode 总线•该总线将 CortexM3 内核的指令总线与 Flash 指令接口相连接,指令的预取在此总线上完成。
•2. DCode 总线•该总线将 CortexM3 内核的 DCode 总线与闪存存储器的数据接口相连接(常量加载和调试访问)1.2.2 STM32F10X 主系统各单元的含义•3. 系统总线•该总线连接 CortexM3 内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和 DMA 间的访问•4. DMA 总线•该总线将 DMA 的 AHB 主控接口与总线矩阵相连,总线矩阵协调着 CPU 的 DCode 和DMA 到 SRAM、闪存和外设的访问1.2.2 STM32F10X 主系统各单元的含义•5. 总线矩阵•该总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁此总线矩阵由三个驱动部件(CPU 的 DCode 、系统总线和 DMA 总线)和三个被动部件(闪存存储器接口、SRAM 和AHB2APB 桥)构成AHB 外设通过总线矩阵与系统总线相连,允许 DMA 访问•6. AHB/APB 桥( APB ): •两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接APB1 操作速度限于36MHz,APB2 操作于全速 (最高 72MHz)。
1.3 存储器组织与映射•程序存储器、数据存储器、寄存器和输入输出端口被组织在同一个4GB的线性地址空间内•数据字节以小端格式存放在存储器中一个字里的最低地址字节被认为是该字的最低有效字节,而最高地址字节是最高有效字节•可访问的存储器空间被分成8个主要块,每个块为512MB其他所有没有分配给片上存储器和外设的存储器空间都是保留的地址空间1.3.1 嵌入式存储器•1、嵌入式SRAM •STM32F10x内置20K字节的静态SRAM它可以以字节、半字(16位)或全字(32 位)访问SRAM的起始地址是0x2000 0000 2、位段 •CortexM3存储器映像包括两个位段(bitband) 区参见《CotexM3中文》4.1节P42•这两个位段区将别名存储器区中的每个字映射到位段存储器区的一个位,在别名存储区写入一个字具有对位段区的目标位执行读改写操作的相同效果•在STM32F10x里,外设寄存器和SRAM都被映射到一个位段区里,这允许执行单一的位段的写和读操作CODESRAMPeripherals0x0000 00000x2000 00000x4000 00000xE010 00000xFFFF FFFFReservedReservedReservedBit-Band region0x0800 00000x0801 FFFF0x1FFF F0000x1FFF F7FFFlashSystemMemoryReservedReservedOption Bytes0x1FFF F8000x1FFF F80FCortex-M3 internal peripherals0xE000 00000xE00F FFFFReservedSTM32F10X位寻址范围Read byte (RAM, register)11010010Disable external eventsMask and modify bit elementXX1XXXXXWrite byte (RAM, register)11110010Enable external events•传统的方法传统的方法b0b3132bitb0b31@Vbase+Nx32+4xbit@Vbase+Nx32example: 22000000h to 23FFFFFFh@Rbase+Nexample: 20000000h to 200FFFFFhVIRTUALaliasedbit bandingimageREALmemoryimage•Cortex-M3的实现方法的实现方法•下面的映射公式给出了别名区中的每个字是如何对应位带区的相应位的:bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number × 4) 其中:bit_word_addr 是别名存储器区中字的地址,它映射到某个目标位。
bit_band_base 是别名区的起始地址byte_offset 是包含目标位的字节在位段里的序号bit_number 是目标位所在位置(031) 例子1:映射别名区中SRAM地址为 0x20000300 的字节中的位2 0x22006008 = 0x22000000 + (0x300*32) + (2*4). 对0x22006008 地址的写操作和对SRAM中地址0x20000300 字节的位2执行读改写操作有着相同的效果读0x22006008 地址返回SRAM中地址0x20000300 字节的位2的值(0x01 or 0x00) 例子2:映射别名区中GPIOC的第6位( 仅对GPIOC进行置位或复位操作, GPIOC端口位设置/复位寄存器的地址为0x40011010 ) 0x42220218 = 0x42000000 + (0x11010*32) + (6*4). 对0x42220218 地址的写操作和对GPIOC端口的第6位执行读改写操作是相同的读0x42220218 地址返回GPIOC中第6位的值(0x01 or 0x00) 3、嵌入式闪存 高性能的闪存模块有以下的主要特性:•128K 字节闪存•擦写次数:1000 次•闪存存储器有主存储块和信息块组成:–主存储块为16Kx64位,主存储块又划分为128个1K字节的页。
–信息块为320x64 位,信息块又划分为一个2K字节和一个0.5K字节的页闪存存储器接口的特性为:•带预取缓冲器的读接口(每字为2x64 位) •选择字节加载器•闪存编程/擦除操作•访问/写保护 •闪存模块的组织参见《STM3210xReference》2.3.4节 表 21.3.2 存储器与外设的映射•1. 存储器的映像•见下页图(《STM3210xReference》2.3节图2)1、外设存储器映像 起始地址外设总线寄存器映像0x4002 2400 0x4002 3FFF 保留0x4002 2000 0x4002 23FF 闪存存储器接口0x4002 1400 0x4002 1FFF 保留AHB 0x4002 1000 0x4002 13FF 复位和时钟控制0x4002 0400 0x4002 0FFF 保留0x4002 0000 0x4002 03FF DMA 0x4001 3C00 0x4001 3FFF 保留0x4001 3800 0x4001 3BFF USART1 0x4001 3400 0x4001 37FF 保留0x4001 3000 0x4001 33FF SPI1 0x4001 2C00 0x4001 2FFF TIM1时钟0x4001 2800 0x4001 2BFF ADC2 APB10x4001 2400 0x4001 27FF ADC1 0x4001 1C00 0x4001 23FF 保留0x4001 1800 0x4001 1BFF GPIO端口E 0x4001 1400 0x4001 17FF GPIO端口D 0x4001 1000 0x4001 13FF GPIO端口C 0X4001 0C00 0x4001 0FFF GPIO端口B 0x4001 0800 0x4001 0BFF GPIO端口A 0x4001 0400 0x4001 07FF EXTI 0x4001 0000 0x4001 03FF AFIO 0x4000 7400 0x4000 FFFF 保留0x4000 7000 0x4000 73FF 电源控制0x4000 6C00 0x4000 6FFF 后备寄存器(BKP) APB10x4000 6800 0x4000 6BFF 保留0x4000 6400 0x4000 67FF bxCAN 0x4000 6000 0x4000 63FF USB的SRAM 256x16 位0x4000 5C00 0x4000 5FFF USB寄存器0x4000 5800 0x4000 5BFF I2C2 0x4000 5400 0x4000 57FF I2C1 0x4000 4C00 0x4000 53FF 保留0x4000 4800 0x4000 4BFF USART3 0x4000 4400 0x4000 47FF USART2 0x4000 3C00 0x4000 43FF 保留0x4000 3800 0x4000 3BFF SPI2 0x4000 3400 0x4000 37FF 保留APB10x4000 3000 0x4000 33FF 独立看门狗(IWDG) 0x4000 2C00 0x4000 2FFF 窗口看门狗(WWDG) 0x4000 2800 0x4000 2BFF RTC 0x4000 0C00 0x4000 27FF 保留0x4000 0800 0x4000 0BFF TIM4定时器0x4000 0400 0x4000 07FF TIM3定时器0x4000 0000 0x4000 03FF TIM2定时器1.4 STM32F10X的基本配置和封装•1.4.1 STM32F103xx 增强型器件功能的基本配置–参见《STM32F103%20Datasheet%20(Chinese)》 P3–2.1节表二•1.4.2 STM32F103xx 增强型器件的封装形式–STM32F101xx 和 STM32F103xx 系列微控制器有 36 脚( VFQFPN36 )、48 脚( LQFP48 )、64 脚( LQFP64 )、100 脚( LQFP100 )和 144 脚( LQFP144 )等多种封装。
–参见《STM32F103%20Datasheet%20(Chinese)》 P9171.5 启动配置•在STM32F10x里,可以通过BOOT[1:0]引脚选择三种不同启动模式 即使被映像到启动存储区,仍然可以在它原先的存储器空间内访问相关的存储器;在经过启动延迟后,CPU 从位于 0000_0000h 开始的启动存储区执行代码启动模式选择管脚启动模式选择管脚启动模式启动模式说明说明BOOT1BOOT0x0用户用户Flash用户闪存被选为启动区域01系统存储器系统存储器系统存储器被选为启动区域11内嵌内嵌SRAM内嵌 SRAM被选为启动区域1.6 STM32F10X 中的寄存器•1. STM32F10X 中各接口部件中的寄存器–STM32F103 系列微控制器嵌入的各种接口部件都有三大类寄存器:控制寄存器、数据寄存器和状态寄存器,每一类寄存器都包含了多个寄存器,它们在相同的基地址下具有不同的偏移地址2. 寄存器物理地址的确定方法•STM32F10X 中寄存器物理地址由基地址加偏移地址产生 •例:TIM2 定时器的基地址是:0x4000 0000• TIM2 定时器控制寄存器 1 的偏移地址是:00H• TIM2 定时器控制寄存器 2 的偏移地址是:04H• TIM2 定时器从模式控制寄存器的偏移地址是:08H•TIM2 定时器 DMA /中断使能寄存器的偏移地址是:0CH等•由上表述可得到它们的物理地址是:• TIM2 定时器控制寄存器1的物理地址是: 0x4000 0000• TIM2 定时器控制寄存器2的物理地址是: 0x4000 0004• TIM2 定时器从模式控制寄存器的物理地址是: 0x4000 0008• TIM2 定时器DMA/中断使能寄存器的物理地址是: 0x4000 000C等1.7 STM32F10X 中的固件库•固件库包括了程序、数据结构和覆盖所有外部特性的宏单元,还包括设备驱动的描述以及每个外围模块的实例。
•为了方便用户的编程,STM32F10X 对接口部件中寄存器的操作转变成了对固件库的操作即只要调用固件库中的相关函数,就可以完成对接口寄存器的操作STM32F10X 中固件库中的函数是以接口部件来分类的1.7.1 STM32 固件库的定义规则•1. 固件库的命名规则–PPP 表示外围模块的缩写,例如 ADC 表示 AD 转换器;–STM32 固件库中使用的缩写词参见《STM32F10xxx_Library_Manual_ChineseV2》1.1节(P27)1. 固件库的命名规则(续)–系统文件名和源/头文件名以 “stm32f10x_” 的形式表示,例如 stm32f10x_conf.h;–在单一文件中使用的常量在该文件中定义,在多个文件中使用的常量定义在头文件中,所有的常量以大写字母表示;–寄存器当作常量看待;–外围模块功能函数的名字需要有相应的外围模块缩写加下划线这样的前缀,例SPISend_Data;在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分1. 固件库的命名规则(续)–名为PPP_Init的函数,其功能是根据PPP_InitTypeDef中指定的参数,初始化外设PPP,例如TIM_Init;–名为PPP_DeInit的函数,其功能为复位外设PPP的所有寄存器至缺省值,例如TIM_DeInit;–名为PPP_StructInit的函数,其功能为通过设置PPP_InitTypeDef 结构中的各种参数来定义外设的功能,例如:USART_StructInit;–名为PPP_Cmd的函数,其功能为使能或者失能外设PPP,例如: SPI_Cmd. –名为PPP_ITConfig的函数,其功能为使能或者失能来自外设PPP某中断源,例如: RCC_ITConfig. 1. 固件库的命名规则(续)–名为PPP_DMAConfig的函数,其功能为使能或者失能外设PPP的DMA接口,例如:TIM1_DMAConfig. –用以配置外设功能的函数,总是以字符串“Config”结尾,例如GPIO_PinRemapConfig. –名为PPP_GetFlagStatus的函数,其功能为检查外设PPP某标志位被设置与否,例如:I2C_GetFlagStatus.– 名为PPP_ClearFlag的函数,其功能为清除外设PPP标志位,例如:I2C_ClearFlag. –名为PPP_GetITStatus的函数,其功能为判断来自外设PPP的中断发生与否,例如:I2C_GetITStatus. –名为PPP_ClearITPendingBit的函数,其功能为清除外设PPP中断待处理标志位,例如: I2C_ClearITPendingBit.2. 代码标准•类型定义在头文件 stm32f10x_type.h 中,详细参见《STM32F10xxx_Library_Manual_ChineseV2》1.3节P28:–变量类型–布尔(bool)类型–标志状态(FlagStatus type))类型–功能状态(FunctionalState type))类型–错误状态(ErrorStatus type))类型3. 外围模块•指向外围模块的指针,用来访问外围模块控制寄存器。
外围模块控制寄存器结构•stm32f10x_map.h 中包含了所有外围模块结构的定义每个外围模块的寄存器名是该寄存器的缩写,用大写表示RESERVEDi (i 是正数,作为保留域的下标)表示保留域•例:一个 SPI 寄存器结构的声明Typedef struct{vu16CR1/* SPI 控制寄存器 1 */u16 RESERVED0/* 保留 0 */vu16CR2/* SPI 控制寄存器 2 */u16 RESERVED1/* 保留 1 */ vu16SR/* SPI 状态寄存器 */u16 RESERVED2/* 保留 2 */ vu16DR/* SPI 数据寄存器 */u16 RESERVED3/* 保留 3 */vu16CRCPR /* SPI CRC 多项式寄存器 */u16 RESERVED4/* 保留 4 */vu16RXCRCR/* SPI Rx CRC 寄存器 */u16 RESERVED5/* 保留 5 */vu16TXCRCR/* SPI Tx CRC 寄存器 */u16 RESERVED6/* 保留 6 */}SPI_TypeDef外围模块声明•所有外围模块也在 stm32f10x_map.h 中声明•说明:–定义标签 _SPI,用来在应用程序中引入 SPI 外围模块库(_SPI 标签定义在 stm32f10x_conf.h 中);–定义 label_SPIn,用来访问 SPIn 的外围寄存器(_SPIn 标签定义在 stm32f10x_conf.h 中);–为了进入调试模式,用户必须在头文件 stm32f10x_conf.h 中定义标签 DEBUG。
这样就构成了一个指向 SRAM 中外围模块结构体的指针,从而使调试变的简单,并且所有寄存器的设置可以通过转储一个外围变量来实现 SPI 外围模块的声明•#ifndef EXT•#Define EXT extern•#endif••#define PERIPH_BASE((u32)0x40000000)•#define APB1PERIPH_BASE PERIPH_BASE•#define APB2PERIPH_BASE(PERIPH_BASE + 0x10000)••/* SPI2 Base Address definition */•#define SPI2_BASE(APB1PERIPH_BASE + 0x3800)••/* SPI2 peripheral declaration */•#ifndef DEBUG••#ifdef _SPI2•#define SPI2((SPI_TypeDef *)SPI2_BASE)•#endif /* _SPI2 */••#else /* DEBUG */••#ifdef _SPI2• EXT SPI_TypeDef*SPI2•#endif/* _SPI2 */••#endif/* DEBUG */1.7.2 STM32 固件库的层次结构•1. 示例(Examples)文件夹•Examples 包含每个外设模块的子文件夹,每个子文件夹提供了运行该外设所需要的最小文件集。
–readme.txt :描述示例如何工作–stm32f10x_conf.h :头文件,配置所使用的外围模块,并且包括各种 DEFINE 语句–stm32f10x_it.c :中断处理函数的源文件–stm32f10x_it.h :中断处理函数的原型–main.c :示例代码2. 库(Library)文件夹•Inc 子文件夹包含固件库的头文件,不需用户修改–stm32f10x_type.h :所有其它文件中使用的普通数据类型和枚举–stm32f10x_map.h :外围模块内存映射和寄存器数据结构–stm32f10x_lib.h :主头文件,引入所有其它头文件–stm32f10x_ppp.h(每个外围模块对应一个头文件):函数原型,数据结构和枚举–cortexm3_macro.h :cortexm3_macro.s (专用的 CortexM3 指令的封装)的头文件•Src 子文件夹包含固件库的源文件,不需用户修改–stm32f10x_lib.c :所有外围模块指针初始化–stm32f10x_ppp.c(每个外围模块对应一个源文件):每个外围模块的函数体 3. 工程(Project)文件夹 •它包含了一个标准的模板工程,用户可以在此基础上建立新的用户工程。
–stm32f10x_conf.h :配置文件,包括所有外围模块的默认定义–stm32f10x_it.c :源文件,包括中断处理函数–stm32f10x_it.h :头文件,包含所有中断处理的原型–main.c :主函数体–EWARM,RVMDK :由工具链使用1.7.3 STM32 固件库的使用•使用固件库建立示例应用的过程如下:•使用 IAR 建立一个工程;•添加一个新的源文件 main.c,并添加其内容,其中主体实现在函数 main 中;•引入固件库;•编译并运行结束结束 。





