单击此处编辑母版标题样式STM32基础教程STCortex-M3Contents1、什么是STM32?2、如何开发STM323、实例操作什么是STM32?•新的基于ARM内核的32位MCU系列–内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Cortex-M3内核–标准的ARM架构•超前的体系结构–高性能–低电压–低功耗–创新的内核以及外设•简单易用/自由/低风险•管脚,软件和外设全线兼容•FLASH–32KB,64KB,128KB,256K,512K•RAM–6KB,10KB,20KB,32KB,64KB•封装–LQFP-48/LQFP-64/LQFP-100/BGA-100•电压范围2.0到3.6V•I/O电压容限为5VSTM32系列介绍STM32系列介绍72MHzCORTEX-M3CPUWideoffer•32KB-512KBFlash•6Kb-64KBRAMFlashSize(bytes)256K512K100pinsLQFP(14x14)/BGA32K64K64pinsLQFP(10x10)48pinsLQFP(7x7)144pinsLQFP(20x20)/BGA0K未来发展方向STM32SamplesNOWProdOct07STM32prodQ2/08SamplesDec07ProdQ2/08STM32F10x的两条产品线STM32F101“基本型”系列STM32F103“增强型”系列•在32位的FLASHMCU中性能最强•整体信号处理方面一定程度上胜过DSP解决方案•出众的控制和连通性•非常适合低电压/低功耗的应用场合•16位处理器的价格却拥有32位的性能•STM32系列中的入门级产品•非常适合低电压/低功耗的应用场合STM32F10x的两条产品线Bothlineshaveupto:5xUSART2xSPI2xI2CRTC11+DMA2xWDG5x16-bitTIMERS80%GPIOratio12bADC(1µs)Tempsensor36MHzCPUUpto48KBSRAMUpto512KBFLASHUpto64KBSRAMCANUSBACtimerEMI*2x12bADC(1µs)TempsensorDAC*72MHzCPUInt8MHzRCInt32kHzRCPOR/PDR/PVDbrownout“基本型”系列“增强型”系列EMI*DAC*I2S**只有在Flash大于256KB(包含)的芯片上才包括DAC,EMI(144pins),I2S,SDIOSDIO*STM32F103“增强型”系列•2V-3.6V供电电压•5VI/Os电压容限•出色的时钟安全模式•带有唤醒功能的低功耗模式•内部RC•嵌入的RESET•-40/+85°C(工业级)*仅限144脚的封装**只有在Flash大于256KB(包含)的芯片上才包括DAC,EMI(144pins),I2S,SDIO,图象传感器CORTEXM3CPU72MHz6kB-64kBSRAMARMPeripheralBus(max72MHz)2x12-bitADC16channels/1Msps1/2xI2C0/1xSPI1/2/4xUSART/LINSmartcard/IrDaModemControl32/49/80*I/OsUpto16Ext.ITsFlashI/F32kB-512kBFlashMemoryTempSensor1xUSB2.0FS1xbxCAN2.0B6x16-bitPWMSynchronizedACTimer2xWatchdog(independent&window)2/3/5x16-bitTimerExternalMemoryInterface**JTAG/SWDebugXTALoscillators32KHz+4~16MHzPowerSupplyReg1.8VPOR/PDR/PVDDMA3to11*ChannelsNestedvectITCtrl2xSPI/I2S**2xDAC**1xSDIO**ImageSensor**1xUSART/LINSmartcard/IrDaModem-Ctrl1xSPIBridgeBridge1xSysticTimerARMLiteHi-SpeedBusMatrix/Arbiter(max72MHz)Int.RCoscillators32KHz+8MHzPLLClockControlRTC/AWUARMPeripheralBus(max36MHz)20BBackupRegs6KBRAM*6KBRAM*STM32F103“增强型”系列FlashSize(bytes)128K256K512K100pinsLQFP/BGASTM32F103Rx20KBRAMSTM32F103Rx20KBRAMSTM32F103Cx20KBRAM32K64KSTM32F103Rx64KBRAMSTM32F103Vx20KBRAMSTM32F103Vx64KBRAMSTM32F103Vx20KBRAMSTM32F103Vx64KBRAM3xUSART3x16-bittimer2xSPI,2XI2CUSB,CAN,PWM2xADC64pinsLQFP48pinsLQFP2xUSART2x16-bittimer1xSPI,1xI2CUSB,CAN,PWM2xADC5xUSART5x16-bittimer2xSPI,2XI2CUSB,CAN,PWM2xADC,2xDAC,I2SEMI(144pinsonly)STM32F103Rx64KBRAM144pinsLQFP/BGASTM32F103Zx64KBRAMSTM32F103Zx64KBRAMSTM32R103Zx64KBRAMSTM32F103Cx10KBRAMSTM32F103Rx10KBRAM*32kBdevicesexistw/otheCANandUSB,with6kBofRAM0KSamplesApril07ProductionOct07SamplesDec07ProductionQ208STM32通用平台STM32概念标准的ARMTMCortex-M3内核高性能外设提供两个完整的产品系列开发工具以及软件支持各系列产品全面兼容FamilyToolsPeriphsCore优点•可升级的体系结构•适用你所有的应用•给用户相同的“外观和感受”•统一的软件和开发投入Cortex-M3处理器集成了内核和高级系统外设的分级处理器•Cortex-M3内核–哈佛体系结构–拥有分支预测功能的三级流水线–Thumb®-2指令集和传统的Thumb指令集–带有硬件除法和单信号周期乘法的ALU•Cortex-M3处理器–Cortex-M3内核–可配置的中断控制器–总线矩阵–先进的调试组件–可选择的MPU&ETMCortex-M3处理器概述•哈佛结构•指令总线和数据总线分离,允许并行地取指和数据存储•指令密度达到1.25DMIPS/MHz,0.19mW/MHz•Thumb-2指令集拥有32位的性能和16位的代码密度•单周期乘法和硬件除法•Cortex-M3核内部集成了嵌入式高速中断控制器:•低中断响应时间,最低可达6个CPU周期(内部中断)•从低功耗模式被唤醒也只需6个CPU周期•相比于ARM7TDMI,Cortex-M3内核要快35%且减少了45%的代码Cortex-M3处理器概述三级流水线–取指,解码和执行单信号周期乘法硬件除法–UDIV&SDIV–指令执行需要2到12周期,取决与被除数与除数–两者越相近指令完成越快–指令可以被中断(丢弃/重启)Cortex-M3处理器概述132b32bx16b3-7*64b32bx32b132b32bx32b132b16bx16bCyclesDestinationSourceCortex-M3VSARM7:主要参数比较1.25Thumb-20.74Thumb/0.93ARMDMIPS/MHzxPSR.2modes.Stackedregs(1bank)PSR.6modes.20Bankedregs系统状态ArchitectureDefinedUndefined存储器印射ThreeNo睡眠模式12Cycles(6whenTailChaining)24-42Cycles(DependingonLSM)中断响应时间NMI,SysTickandupto240interrupts.IntegratedNVICInterruptControllerupto1-255PrioritiesFIQ/IRQ中断3-Stage+BranchSpeculation3-Stage流水线Thumb-2(Merged32/16-bit)ARM(32-bit)&Thumb(16-bit)指令集v7Mv4T体系结构Cortex-M3ARM7TDMI-SCortex-M3附加的特性–简化了跟踪调试接口的管脚,从9脚减少到2或3脚–硬件中断处理不需要汇编代码–综合的原子位操作改进了数据存储–扩展的数据观测点&Flash保护技术–嵌入式的睡眠控制和掉电模式–可选择的小型的存储器保护单元(MPU)和嵌入式跟踪宏单元(ETM)•内置式的管理单元减少了对外部器件的需求:•上电复位,低电压检测,掉电检测,带有独立时钟的看门狗计时器•一个主晶振驱动整个系统•廉价的4-6MHz晶振驱动CPU,USB和所有外设•嵌入式PLL生成各种频率•可选择的为RTC提供的32KHz晶振•嵌入式的8MHzRC可以被用作主时钟•8MHz,1%精度的内部振荡器•40KHz的内部实时时钟•在LQFP100封装芯片的基础系统上只需要7个外部无源器件高集成度先进的外设STM32采用双APB(先进外设总线)结构,每条总线都是高速APB总线(最高可到CPU的频率)。外设通过连接到这种总线结构提高了外设的速度。速率项目USB12Mbit/sSPIUpto4.5Mbit/sI2C18MHz(主和从)GPIO400kHzPWMtimer18MHz72MHz时钟输入USART标准的ARMTM体系结构–成熟的体系,便于开发世界范围内有广泛的第三方支持–大量的开发工具以供选择(Keil,IAR,Raisonance,Hitex)使用从ST获得的免费的固件库–主要使用的稳定版本有V2.0.3和V3.30广泛的工具和固件库支持最大减少设计时间如何使用开发STM32?硬件设计参考官方的评估板进行设计软件开发使用MDK(Keil)或者IAR集成开发环境使用ST公司提供的固件库进行软件编写支持SRM32的开发环境IDE提供商IDE描述支持编译器在线调试仿真器IAREWARMARM的嵌入式开发平台,包括C/C++编译器,汇编,连接定位,编辑项目管理,C-SPY®调试器.用户可在一个连续的流程中创建项目,编辑文件,编译,汇编,链接,调试应用。IAR'sISOC/C++andExtendedEmbeddedC++AnbyICE,ARMRealViewICE,J-Link,MacraigorWigglerandotherRDI-basedJTAGinterfacesKeiluVision3/4包括项目管理,源码编辑,凋试,器件仿真以及Flash下载的功能强大的环境.带RealView微控制器开发套件(RVMDK)。Keil,GNUC/C++,ARM(ADSandRVDS)KeilULink,HitexTanto,iSYSTEMiC3000,NohauEMUL-ARM,J-LinkRaisonanceRIDE免费的IDE,RLINK在线调试/编程器提供无缝控制所有软件开发工具(编译,调试等),图形视化接口。GNUC/C++RLinkRowleyCrossWorksCrossStudio集成开发环境带JTAG的Flash下载和调试。GNUC/C++CrossConnect,MacraigorWiggler,IAR,J-LinkSTM32F10XXX编程仿真器提供商名称描述支持IDE其他STRLINK-STX在线编程/调