2020/4/141走近STM32尚业远航科技有限公司王鹏2010年9月3日2020/4/142主要内容一.STM32归属二.Cortex-M3内核三.具体芯片STM32F103VB的使用四.基本操作GPIO点亮LED2020/4/1431.ARM体系结构概述2.ARM处理器系列3.STM32产品简述一.STM32归属2020/4/1441.ARM体系结构概述ARM,英文全称为AdvancedRISCMachines。宽泛地说,ARM是一种技术的名字,即采用ARM处理器的控制技术。CISC,复杂指令集计算机。RISC,精简指令集计算机。2020/4/1452.ARM处理器系列2020/4/1463.STM32产品简述2007年6月ST宣布了她的第一款基于Cortex-M3并内嵌32K~128K闪存的STM32微控制器系列产品。Cortex-M3系列微处理器的主要特点如下:•Thumb-2指令集架构(ISA)的子集。•哈佛处理器架构,在加载/存储数据的同时能够执行指令取指。•三级流水线。•32位单周期乘法。•具备硬件除法。•Thumb状态和调试状态。•处理模式和线程模式。•ISR的低延迟进入和退出。•可中断-可继续的LDM/STM,PUSH/POP。•ARMv6类型BE8/LE支持。•ARMv6非对齐访问。•分支预测功能2020/4/1472020/4/1481.内核与芯片区别2.寄存器组3.模式与特权4.堆栈区操作5.存储器系统6.NVIC嵌入式中断控制器二.Cortex-M3内核下一章2020/4/1491.内核与芯片区别基于Cortex-M3的MCU2020/4/14102.寄存器组2020/4/14113.模式与特权Cortex-M3处理器代码可以是特权执行或非特权执行。线程模式在复位之后为特权访问。这里需要注意的是,处理模式始终是特权访问的。2020/4/14124.堆栈区操作向下生长的满栈Cortex-M3的双堆栈机制2020/4/14135.存储器系统CM3的存储器系统与从传统ARM架构的相比,已经有过脱胎换骨般的改革了:第一,它的存储器映射是预定义的,并且还规定好了哪个位置使用哪条总线。第二,CM3的存储器系统支持所谓的“位带”(bit-band)操作。通过它,实现了对单一比特的原子操作。位带操作仅适用于一些特殊的存储器区域中。第三,CM3的存储器系统支持非对齐访问和互斥访问。这两个特性是直到了v7M时才出来的。最后,CM3的存储器系统支持both小端配置和大端配置。2020/4/14146.NVIC嵌入式中断控制器进入中断方式入栈:把8个寄存器的值压入栈。取向量:从向量表中找出对应的服务程序入口地址。选择堆栈指针MSP/PSP,更新堆栈指针SP,更新连接寄存器LR,更新程序计数器PC。高效的低延迟异常处理NVIC的寄存器以存储器映射的方式来访问使能与除能寄存器悬起与“解悬”寄存器优先级寄存器活动状态寄存器返回本章目录2020/4/1415三.具体芯片STM32F103VB的使用1.资料文档说明2.STM32系统架构3.STM32F103VB资源4.STM32的启动配置5.STM32的时钟6.基于ARMCortex-M3的STM32最小开发系统7.开发环境RealViewMDK8.程序下载下一章2020/4/14161.资料文档说明缩略语《CM3权威指南》THUMB-2指令集《CM3权威指南》NVIC寄存器《CM3技术参考手册》外设寄存器《STM32F10xxx参考手册》RCC与FLASH相关《闪存编程手册》库函数说明《STM32固件库使用手册》引脚的默认第二功能《STM32F103xB数据手册》27页表STM32各型号资源《STM32_选型指南》2020/4/14172.STM32系统架构2020/4/14183.STM32F103VB资源2020/4/14194.STM32的启动配置1.时钟选择与FLASH的等待周期2.外部管脚配置2020/4/14205.STM32的时钟三种不同的时钟源可被用来驱动系统时钟(SYSCLK):HSI振荡器时钟HSE振荡器时钟PLL时钟这些设备有以下2种二级时钟源:40kHz低速内部RC,可以用于驱动独立看门狗和通过程序选择驱动RTC。RTC用于从停机/待机模式下自动唤醒系统。32.768kHz低速外部晶体也可用来通过程序选择驱动RTC(RTCCLK)。时钟树2020/4/14216.基于ARMCortex-M3的STM32最小开发系统2020/4/14227.开发环境RealViewMDK介绍RealViewMDK开发套件源自德国Keil公司,后被ARM收购,加入支持ARM7,ARM9和最新的Cortex-M3核处理器。安装配置2020/4/14238.程序下载J-LINK1.驱动安装2.J-LINK下载HEX文件3.MDK中下载ISP1.启动配置2.ISP安装与使用3.还原启动程序运行返回本章目录2020/4/1424四.基本操作GPIO点亮LED1.相关配置寄存器时钟源配置;GPIO管脚时钟使能;管脚模式速度配置。2.库函数说明版本说明;使用说明。3.编程讲解从0开始编写GPIO点亮LED。2020/4/1435走近STM32技术论坛