STM32系列(CortexM3)高级控制定时器.doc

上传人:laozhun 文档编号:2392487 上传时间:2023-02-17 格式:DOC 页数:27 大小:446.50KB
返回 下载 相关 举报
STM32系列(CortexM3)高级控制定时器.doc_第1页
第1页 / 共27页
STM32系列(CortexM3)高级控制定时器.doc_第2页
第2页 / 共27页
STM32系列(CortexM3)高级控制定时器.doc_第3页
第3页 / 共27页
STM32系列(CortexM3)高级控制定时器.doc_第4页
第4页 / 共27页
STM32系列(CortexM3)高级控制定时器.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《STM32系列(CortexM3)高级控制定时器.doc》由会员分享,可在线阅读,更多相关《STM32系列(CortexM3)高级控制定时器.doc(27页珍藏版)》请在三一办公上搜索。

1、Cortex-M3的高级控制定时器目 录摘 要2ABSTRACT31 绪 论41.1 Cortex-M3的背景及意义41.2 高级控制定时器的意义42 STM32系列的体系结构.62.1 Cortex-M3处理内核62.2 嵌套向量中断控制器62.3 两个可选组件62.4 总线接口72.5 调试接口73 高级控制定时器83.1 高级控制定时器的简介83.2 高级控制定时器的功能描述83.3 高级控制定时器的寄存器种类124 STM32系列开发工具144.1 Keil MDK工具.144.2 Keil MDK的安装145 高级控制定时器实验设计195.1 实验的目的195.2 实验源代码的注解1

2、95.3 实验运行及结果22 5.4 实验现象的分析24结束语25参考文献26致 谢27STM32系列(Cortex-M3)高级控制定时器摘 要本文主要介绍STM32系列中Cortex-M3处理器,开发环境Keil MDK以及EduKit-M3实验平台。Cortex-M3 处理器使用了ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。它也是一个低功耗的处理器,具有门数少, 中断延迟小, 调试容易等特点。Cortex-M3 处理器的特性,使它适合很大范围的应用,主要包括:价格敏感的设备通用MCU、智能玩具、个人电子设备,低功耗设备Zigbee、PAN(BlueTooth)、医疗电子

3、设备,高性能设备超低价格手机、汽车应用、大容量存储设备。STM32 微处理器基于ARM 核,所以很多基于ARM 嵌入式开发环境都可用于STM32开发平台。开发工具都可用于STM32 开发。选择合适的开发环境可以加快开发进度,节省开发成本。而STM32常用的开发工具是Keil MDK,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起 。现在最高版本是u Vision3,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。本设计是先在软件Keil

4、 u Vision3进行仿真并观测输出波形。在这过程中掌握如何编译所需要的代码,如何修改源代码,如何运用该软件,以及如何实现实验目的。然后在EduKit-M3实验平台通过示波器察看所需要的波形。在这个过程中掌握实验所需要注意的事项,如何连接软件和硬件,如何观察波形。关键词: STM32, Cortex-M3处理器, Keil u Vision3ABSTRACTThis article introduces mainly the processor of Cortex-M3 in STM32 series,the development environment Keil MDK and the

5、EduKit-M3 experimental platform.The Cortex-M3 processor implements the ARMv7-M architecture, is a comprehensive, highly configurable processor. It is also a low-power processor that features low gate count, low interruptlatency, and low-cost debug. The characteristics of Cortex-M3 processor, making

6、it suitable for large scope of application, mainly including: price sensitive equipments general MCU、intelligent toys、personal electronic equipment, low power consumption equipmentsthe PAN (BlueTooth) Zigbee、medical electronic equipment、high performance, low prices cell phones equipments car applica

7、tion、mass storage device. STM32 microprocessor based on the ARM kernel, so many embedded development environment based on ARM can be used for the STM32 development platform.the Development tools can be used for STM32 development. Choosing appropriate development environment can speed up development

8、progress and save development costs.However commonly used development tool for STM32 is Keil MDK,and Keil includes C compilers, macro assemblers, connectors, library managements and the complete development plan that has a powerful simulation debugger, and these function get together by an integrate

9、d development environment (uVision).Now the highest version is u Vision3. its interface is similar with the interface of commonly used Microsoft vc+,but its interface is friendly and easy to learn and use.In debugging procedures, software simulation also have very powerful functions.This design is f

10、irstly simulating by the software Keil u Vision3 and observing the output waveforms.In this process we should learn how to compile required codes, how to make changes to modify the codes, how to use the software,and how to achieve experimental purposes.Then in the EduKit-M3 experimental platform we

11、observ the required waveforms by the oscilloscope.In this process we should master LABS notices, how to connect software and hardware, how to observe waveforms. Key words: STM32,the Cortex-M3 processor, Keil u Vision31 绪 论1.1 Cortex-M3的背景及意义随着单片机市场的规模越来越大,各行各业对单片机的功能要求越来越高,那么处理器和软件的性能要求就会越来越高。在这样的环境

12、下,ARM Cortex-M3处理器,作为Cortex系列的处女作,为了让32位处理器在单片机市场上占主导的地位,轰轰烈烈地诞生了。Cortex系列按照性能的不同分为A,R,M三个系列。A 系列,面向复杂的尖端应用程序,用于运行开放式的复杂操作系统。R 系列,适合实时系统。M 系列,专门针对低成本的微控制领域。Cortex-M3 处理器的性能是ARM7的两倍,它是一个低功耗的处理器,具有门数少、中断延迟小、调试容易等特点。Cortex-M3 处理器使用了ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。它包含了一个高效的哈佛结构三级流水线,可提供1.25DMIPS/MHz 的性能

13、。为降低器件成本,Cortex-M3 处理器采用了与系统部件紧耦合的实现方法,来缩小芯片面积,其内核面积比现有的三级流水线内核缩小了30%。Cortex-M3 处理器实现了Thumb-2指令集架构,具有很高的代码密度,可降低存储器需求,并能达到非常接近32 位ARM 指令集的性能。所以它主要用于价格敏感的设备(如通用MCU、智能玩具、个人电子设备等)、低功耗设备(如Zigbee、PAN、BlueTooth、医疗电子设备等)、高性能设备(如超低价格手机、汽车应用、大容量存储设备等)。 Cortex-M3 处理器在高性能内核基础上,集成了多种系统外设,可以满足不同应用对成本和性能的要求。处理器是全

14、部可综合、高度可定制的(包括物理中断、系统调试等),Cortex-M3 还有一个可选的细粒度的(fine-granularity)存储器保护单元(MPU)和一个嵌入式跟踪宏单元(ETM)1。 现在Cortex-M3产品已经面世,提供更多的指令,更高效能,同时也更易用,价值也相当低。不但可令产品提供更多的功能,软件的开发和测试也容易得多,使产品能更早推出市场。1.2 高级控制定时器的意义 STM32中有两个非常重要的定时器分别是高级控制定时器和通用定时器。高级控制定时器(TIM1)和通用定时器(TIMx)是完全独立的,不共享任何资源。高级控制定时器,简称TIM1,由一个自动重载的16位计数器组成

15、,它由可编程的预分频器驱动。该定时器可用于多种场合,包括测量输入信号的脉冲宽度(输入捕获),产生输出波形(输出比较,PWM, 嵌入“死区时间”的互补PWM)。高级控制定时器不但具有通用定时器的功能而且还具有一些其他特殊的功能,例如具有可编程“死区时间”的补偿输出,循环计数器更新定时器寄存器的值,打断输入以使定时器的输出信号进入复位或一个已知的状态,打断输入产生中断/DMA等功能。这些特殊的功能归功于寄存器的不同。高级控制定时器比通用定时器多两个寄存器。这两个寄存器是循环计数器的寄存器(TIM1_RCR),打断和死区寄存器(TIM1_BDTR)。 一般情况下,对于互补输入和死区插入的运用非常简单

16、。高级控制定时器能输出两个补偿信号,并管理输出信号的即时接通和切断.这就是通常所说的死区。需要依赖连接到输出的设备和这些设备的特性(如电平转换的固有延迟,电源转换引起的延时等)对死区时间进行调整.。而对于使用打断功能,依据相应的控制位,输出使能信号和无效电平都会被修改。所以对于高级控制定时器的实验,应该对高级控制定时器进行控制,并且使之各通道输出插入了死区的互补的PWM输出2。 2 STM32系列的体系结构STM32有六大产品系列分别是STM32F105/107,STM32F103,STM32F102,STM32F101,STM32L15x, STM32F100。所有STM32系列都采用同样性

17、能Cortex-M3内核。而Cortex-M3 处理器主要包括: 处理器内核,嵌套向量中断控制器(NVIC),存储器保护单元(MPU), 总线接口, 调试接口。下面主要介绍Cortex-M3 处理器。2.1 Cortex-M3处理内核Cortex-M3 处理器使用了ARM v7-M 体系结构,是一个可综合的、高度可配置的处理器。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。它采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指和数据访问并行不悖,因而可提供1.25DMIPS/MHz 的性能。Cortex-M3 内核实现了Thumb-2 指令集传统Thumb 指令集的一

18、个超集,既获得了传统32 位代码的性能,又具有16 位的高代码密度。它拥有R0R15的寄存器,R0R7寄存器是低位寄存器,R8R12是高位寄存器,R13作为椎栈指针SP,SP有两个,这两个SP具有不同的功能,任一时刻只能使用其中一个。R14是连接寄存器,R15是程序计数寄存器2。2.2 嵌套向量中断控制器Cortex-M3在内核水平上搭载了一颗中断控制器嵌套向量中断控制器(NVIC),它与内核有很深的“亲密接触”与内核是紧耦合的,因而提供了工业领先的中断处理性能。标准的NVIC实现包括一个不可屏蔽中断(NMI),加上具有优先级的32个通用物理中断。通过简单的综合选择,控制器可以被配置为1-24

19、4个物理中断。另外,抢占式优先级的数目,可以在综合时配置到255个。与处理器内核的紧密结合,使处理器可以更快地执行中断服务程序(ISR)。典型情况下,从中断发生到进入服务可减少70%的周期数,这是通过寄存器硬件堆栈,加上退出和重启多寄存器Load-Store操作完成的。这种实现也意味着不需要任何汇编代码来完成寄存器数据传送,大大简化了代码1。2.3 两个可选组件ARM Cortex-M3 有两个可选组件:存储器保护单元(MPU)、嵌入式跟踪宏(ETM)。细粒度的 MPU 设计,使多任务的应用可以实现安全特权,以及分离代码、数据和堆栈。在类似汽车等许多嵌入式应用中,这类需求正变得越来越普遍。嵌入

20、式跟踪单元(ETM)提供了一种远小于传统跟踪单元范围的指令跟踪捕获,使许多低价器件(如MCU)可以实现跟踪调试1。在Cortex-M3微控制器中可以选配一个存储器保护单元(MPU),它可以实施对存储器(主要是内存和外设寄存器)的保护,从而使软件更加健壮和可靠。如果打算启用MPU,则在使用前,必需根据需要对其编程;如果没有启用MPU,则等同于系统没有配有MPU。MPU有许多功能,例如阻止用户应用程序破坏操作系统所使用的数据,阻止一个任务访问其他任务的数据区并把任务隔开,可以把关键数据区设置成只读从根本上消除被破坏的可能,检测意外的存储访问,可以通过MPU设置存储器region的其他访问属性2。E

21、TM功能块用于提供指令跟踪(即指令执行的历史记录),它是个选配件,不一定出现在所有的Cortex-M3产品上。当它使能,并且跟踪操作开始后,会产生指令跟踪数据包。ETM中也有一个FIFO缓冲区,为跟踪数据流的捕捉提供充足的时间。为了减少产生的数据量,ETM并不会一直忙不迭地输出处理器当前正在执行的地址。通常它只输出有关程序执行流的信息,并只有在需要时才输出完整的地址。因为调试主机也有一份二进制映像的备份,它可以使用此备份来重建指令的执行序列2。2.4 总线接口ARM Cortex-M3处理器集成了一个AMBA AHB-Lite总线来连接系统外设,并降低系统集成的复杂性。总线矩阵支持不对齐的数据

22、访问,使不同的数据类型可以在存储器中紧密衔接(不因为数据需要对齐而留出空隙),可显著降低SRAM的需求和系统成本。总线矩阵将处理器、调试接口连接到外部总线2。2.5 调试接口ARM Cortex-M3 实现了一个完整的硬件调试解决方案,通过一个传统的JTAG 口或一个适合小封装器件的2 线串行调试口(SWD),可以获得很高的处理器系统可视度。对于系统跟踪,处理器在数据观察点基础上集成了一个可选的 ETM(嵌入式跟踪宏单元),它可以被配置为特定的系统事件触发。为了简化这些系统事件的处理,一个串行观测器(Serial Wire Viewer,SWV)可以通过一个引脚输出标准的ASCII 数据流2。

23、3 高级控制定时器3.1 高级控制定时器的简介高级控制定时器(TIM1)由一个自动重载的16位计数器组成,它由可编程的预分频器驱动。该定时器可用于多种场合,包括测量输入信号的脉冲宽度(输入捕获),产生输出波形(输出比较,PWM, 嵌入“死区时间”的互补PWM)。使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。TIM1 定时器有以下特性:1. 16 位的向上,向下,向上/向下的自动重载计数器。2. 16 位的可编程预分频器(也可以不工作)允许以1 到65535 范围内的任何分频因子对计数器时钟进行分频。3. 多达4 个独立的通道用于:输入捕获,输

24、出比较,产生 PWM(边沿和中心对齐模式),单脉冲模式输出,具有可编程“死区时间”的补偿输出。4. 使用外部信号控制定时器和定时器互连的同步电路。5. 循环计数器只有经过给定的周期后,才能更新定时器寄存器的值。6. 打断输入以使定时器的输出信号进入复位或一个已知的状态。7. 可以产生中断/DMA的事件有:更新(计数器上溢/下溢,计数器初始化。),触发事件(计数器开始,停止,初始化或由内部/外部触发计数),输入捕获, 输出比较,打断输入2。3.2 高级控制定时器的功能描述1. 时基单元可编程的高级控制定时器的主要模块是一个 16 位的计数器以及相关的自动重载寄存器.该计数器可向上,向下或向上/向

25、下双计数.该定时器的时钟可通过预分频器来分频.计数器,自动重载寄存器和预分频数寄存器均可通过软件来读写.即使计数器在工作,读写操作也是有效的.时基单元包括:计数器寄存器(TIM1_CNT), 预分频数寄存器(TIM1_PSC),自动重载寄存器(TIM1_ARR), 循环计数器寄存器(TIM1_RCR)。自动重载寄存器是预先加载的。对自动重载寄存器的读写是通过读写预加载寄存器来实现的。预加载寄存器中的内容要么永久性的传送到影子寄存器中,要么仅在每次更新事件发生时才传送到影子寄存器中,这取决于TIM1_CR1寄存器中自动重载的预加载使能位(APRE)的值。计数器上溢(或向下计数时下溢)且TIM1_

26、CR1寄存器的UDIS位等于0时发生更新事件.更新事件也可由软件产生2。2. 计数器模式计数器模式有向上计数模式,向下计数器模式以及中心对齐模式。向上计数模式:计数器从0 向上计数到自动重载计数器中的值(TIM1_ARR 寄存器的内容),然后重新从0 开始并产生计数器溢出事件。向下计数模式:计数器从自动重载值(TIM1_ARR寄存器的内容)向下计数到0,然后再从自动重载值开始并产生计数器下溢事件。中心对齐模式(向上/向下计数):计数器首先从0向上计数到自动重载值(TIM1_ARR寄存器的内容)1,产生计数器上溢事件后再向下计数到1产生计数器下溢事件,然后从0开始重复这一过程。循环向下计数器时基

27、单元描述了更新事件在计数器上溢/下溢时是如何产生的。实际上,更新事件仅当循环向下计数到0时才产生。这可用来产生PWM信号。 这意味着在每N次计数溢出或下溢时,数据从预装载寄存器传输到影子寄存器,N是TIM1_RCR周期计数寄存器中的值。循环向下计数器有两种递减方式分别是向上计数模式下每次计数器上溢时和向下计数模式下每次计数器下溢时。3. 时钟选择能提供计数器时钟源的有:内部时钟(CK_INT),外部时钟模式1:外部输入引脚,外部时钟模式2:外部触发输入ETR,内部触发输入(即将一个定时器作为另一个定时器的预分频器)2。4. 捕获/比较通道每个捕获/比较通道都是由一个捕获/比较寄存器(包括一个影

28、子寄存器),一个捕获输入部分(包括数字过滤器,多路器和预分频器)和一个输出部分(包括比较器和输出控制)。捕获/比较模块由一个预加载寄存器和一个影子寄存器组成。读写操作总是针对预加载寄存器的。在捕获模式下,捕获实际上在影子寄存器中进行的,然后再复制到预装载寄存器中。在比较模式下,预加载寄存器中的值被复制到影子寄存器中,并和计数器值比较2。5. 输入捕获模式在输入捕获模式下,当检测到ICx信号上相应的边沿后,捕获/比较寄存器被用来锁存计数器的值。当一个捕获事件发生时,相应的CCXIF标志被置1,如果使能了中断或者DMA操作,则将产生中断或者DMA操作。如果一个捕获事件发生时CCxIF标志已经为高,

29、那么重复捕获标志CCxOF被置1。写CCxIF=0可清除CCxIF,或读取存储在TIM1_CCRx寄存器中的捕获数据也可清除CCxIF。写CCxOF=0可清除CCxOF2。6. PWM输入模式这种模式是输入捕获模式的特例。除以下内容外,其余过程相同:1) 同一个TIx输入映射了两个ICx信号。2) 这两个ICx信号分别在相反的极性边沿有效。3) 两个TIxFP信号中的一个被选为触发输入,并且从模式控制器被设置成复位模式2。7. 强制输出模式在输出模式下(TIM1_CCMRx寄存器中的CCxS=00),每个输出比较信号(OCxREF和相应的OCx/OCxN)都可直接由软件强制设为有效或不有效状态

30、,不依赖于输出比较寄存器和计数器间的任何比较.只需将相应的TIM1_CCMRx寄存器中的OcxM位设置为101,就可强制将一个输出比较信号(OCXREF/OCx)设为有效状态。因此OCXREF将被强制设为高(OCXREF总是高电平有效),OCx的值与CCxP极性位的值相反2。8. 输出比较模式此项功能是用来控制一个输出波形或者指示何时一段给定的时间已经到时。1) 当计数器与捕获/比较寄存器的内容相同时,输出比较功能做如下操作:将输出比较模式(TIM1_CCMRx寄存器中的OCxM位)和输出极性(TIM1_CCER寄存中的CCxP位)定义的值输出到对应的引脚上。在比较匹配时,输出引脚可以保持它的

31、电平(OCxM=011)、被设置成有效电平(OCxM=001)、被设置成无有效电平(OCxM=010)或进行翻转(OCxM=011)。2) 设置中断状态寄存器中的标志位(TIM1_SR寄存器中的CCxIF位)。3) 若相应的中断屏蔽位(TIM1_DIER寄存器中的CCXIE位),置位则产生一个中断。4) 若相应的使能位(TIM1_DIER寄存器中的CcxDE位,TIM1_CR2寄存器中用于DMA请求选择的CCDS位)置位则发送一个DMA请求2。9. PWM模式脉冲宽度调制模式可以产生一个由TIM1_ARR寄存器确定频率、由TIM1_CCRx寄存器确定占空比的信号。PWM模式分为PWM边沿对齐模

32、式和PWM中心对齐模式。而PWM边沿对齐模式又分为配置为向上计数模式和向下计数的配置。配置为向上计数,当TIM1_CR1寄存器中的DIR位为低时向上计数是有效的。向下计数的配置,当TIM1_CR1寄存器的DIR位为高时向下计数是有效的.参考向下计数模式。另外PWM中心对齐模式,当TIM1_CR1寄存器中的CMS位不等于00时(其他配置对OCxREF/OCx信号的效果保持不变),中心对齐模式有效。计数器向上,向下或向上/向下计数(取决于CMS位的配置)时比较标志被置位2。10. 互补输出和死区插入高级控制定时器TIM1能输出两个补偿信号,并管理输出信号的即时接通和切断.这就是通常所说的死区。需要

33、依赖连接到输出的设备和这些设备的特性(如电平转换的固有延迟,电源转换引起的延时等)对死区时间进行调整. 2。11. 使用打断功能当使用打断功能时,依据相应的控制位,输出使能信号和无效电平都会被修改。打断源既可以是打断输入引脚又可以是一个时钟失败事件,时钟失败事件是由复位时钟控制器中的时钟安全系统产生。系统复位后,打断电路被禁止,MOS位为低。通过设置TIM1_BDTR寄存器中的BKE位可以使能打断功能。打断输入信号的极性可以通过配置同一个寄存器中的BKP位选择。BKE和BKP可以被同时修改2。12. 通过外部事件清除OCxREF信号可通过给ETRF输入加高电平将一个给定通道的OCxREF信号拉

34、低(相应的TIM1_CCMRx寄存器中的OCxCE使能位被置为1)。OCxREF信号将一直为低直到下一个更新事件UEV发生。该功能只能在输出比较和PWM模式下使用,且在强制模式下不起作用2。13. 6-stepPWM的生成在一个通道上应用了互补输出,OCxM、CCxE和CCxNE的预装载位有效时,在COM通信事件发生时,预装载位被传送到影子位;因而你可以预先设置好下一步的配置,并在同一时间更改所有通道的配置。软件修改TIM1_EGR寄存器中的COM位或者硬件(在TRGI的上升沿)设置可以产生COM事件。当发生COM事件时会设置一个标志位(TIM1_SR寄存器中的COMIF位),这时如果已设置了

35、TIM1_DIER寄存器的COMIE位,则产生一个中断;或者如果已设置了TIM1_DIER寄存器的COMDE位,则产生一个DMA请求2。14. 单脉冲模式单脉冲模式(OPM)是前面几种模式的一个特例.它允许计数器在受到一个激励时,在一个可编程的延时后产生一个宽度可编程的脉冲。可通过从模式控制器来控制计数器的启动。可在输出比较模式或PWM模式下产生波形.通过置位TIM1_CR1寄存器中的OPM位来选择单脉冲模式.这种模式下的计数器在下一个更新事件发生时自动停止2。15. 编码器接口模式若计数器仅在TI2上出现边沿时计数,则设置TIM1_SMCR寄存器中的SMS=001来选择该模式;若计数器仅在T

36、I1上出现边沿时计数,则设置SMS=010;若无论TI1或TI2上出现边沿时计数器都计数,则设置SMS=011。可通过对TIM1_CCER寄存器中的CC1P和CC2P位编程来选择TI1和TI2的极性.如果需要,还可以编程输入过滤器2。16. 定时器输入的异或功能TIM1_CR2寄存器的TI1S位允许通道1的输入过滤器连接到一个异或门的输出.该或门有三个输入引脚TIMx_CH1,TIMx_CH2和TIMx_CH3.该异或输出能够像所有定时器输入一样用于触发或输入捕获2.17. 与霍尔传感器的接口连接实现这一连接要用高级控制定时器产生PWM信号以驱动电机和另一个TIMx定时器,该定时器捕获3个定时

37、器输入引脚.而这些引脚是通过异或门与TI1输入通道相连的。从模式控制器被配置为复位模式,从模式的输入是TI1F_ED.因此,每次3个输入只要由一个被触发计数器都会重新从0开始计数.这就产生了由霍尔输入的任何变化所触发的时间基准2。18. 和外部触发同步TIM定时器可以在下面几种模式下由一个外部触发同步:复位模式,门控模式和触发模式。复位模式:若发生一个触发输入事件,则计数器和它的预分频器可以被重新初始化。门控模式:计数器可由选定输入上的电平使能。触发模式:计数器可由选择输入上发生的事件来启动。从模式:外部时钟模式2+触发模式2。19. 定时器同步TIM1定时器是内部连接在一起的,用于定时器同步

38、或链接.当一个定时器配置为主模式时,它可以复位,启动,停止或作为另一个配置在从模式下定时器的计数器的时钟源2.20. 调试模式当微控制器进入到调试模式时(Cortex-M3核停止工作),TIM1计数器要么继续正常工作,要么停止,这取决于DBG模式下的DBG_TIM1_STOP位配置情况。3.3 高级控制定时器的寄存器种类高级控制定时器有二十个寄存器,其中有三个寄存器发挥着与众不同的功能,导致高级控制定时器与通用定时器有着很大的不同。高级控制定时器比通用定时器多两个寄存器。这两个寄存器是循环计数器的寄存器(TIM1_RCR),打断和死区寄存器(TIM1_BDTR)。现在我来好好介绍一下这二十个寄

39、存器的作用。1控制寄存器1(TIM1_CR1):用于控制独立通用定时器,该寄存器的地址偏移为00h(所有TIM1寄存器的地址都从0x40012C00处开始),复位值0000 0000h。图31,TIM1_CR2地址2控制寄存器2(TIM1_CR2):用于控制独立通用定时器,该寄存器的地址偏移为04h,复位值0000 0000h,如图31。3从模式控制寄存器(TIM1_SMCR):用于从模式控制,该寄存器的地址偏移为08h,复位值0000 0000h。该寄存器的位域定义与通用定时器相同。图32,TIM1_DIER的地址4DMA/中断使能寄存器(TIM1_DIER):控制定时器的DMA及中断请求,

40、该寄存器的地址偏移为0Ch,复位值0000 0000h,如图32。 图33,TIM1_SR的地址5状态寄存器(TIM1_SR):寄存器的地址偏移为10h,复位值0000 0000h,如图33。图34,TIM1_EGR的地址6事件生成寄存器(TIM1_EGR):寄存器的地址偏移为14h,复位值0000 0000h,如图34。7捕获/比较模式寄存器1(TIM1_CCMR1):定时器有4个通道可用于输入(捕获模式)或输出(比较模式),通道的方向由相应的CCxS定义。该寄存器用于捕获/比较模式,其各位的作用在输入和输出模式下不同,寄存器偏移地址为18h,复位值为0000h,位域定义与通用定时器完全相同

41、。8捕获/比较模式寄存器2(TIM1_CCMR2):该寄存器用于捕获/比较模式,其各位的作用在输入和输出模式下不同。该寄存器的偏移地址为1Ch,复位值为0000h,位域定义与通用定时器完全相同。图35,TIM1_CCER的地址9捕获/比较使能寄存器(TIM1_CCER):该寄存器用于使能捕获/比较,该寄存器的偏移地址为20h,复位值为0000h,如图35。10计数器(TIM1_CNT):TIM1_CNT该寄存器用于保存计数器的计数值,偏移地址为24h,复位值为0000h。11预分频器(TIM1_PSC):TIM1_PSC 该寄存器用于设置预分频器的值,偏移地址为28h,复位值为0000h。计数

42、器的时钟频率CK_CNT=fCK_PSC/(PSC15:0+1)。12自动重载寄存器(TIM1_ARR):TIM1_ARR寄存器用于保存计数器自动重装的计数值,偏移地址为2Ch,复位值为0000h。当自动重装载的值为空时,计数器不工作。图36,TIM1_RCR的地址13循环计数器的寄存器(TIM1_RCR):TIM1_RCR该寄存器用于保存重复计数的值,偏移地址为30h,复位值为0000h,如图36。14捕获/比较寄存器1(TIM1_CCR1):TIM1_CCR1寄存器用于保存捕获/比较通道1的计数值,偏移地址为34h,复位值为0000h,位域定义与通用定时器完全相同。15捕获/比较寄存器2(

43、TIM1_CCR2):TIM1_CCR2寄存器用于保存捕获/比较通道2的计数值,偏移地址为38h,复位值为0000h。该寄存器功能与TIM1_CCR1一样,但控制捕/获比较通道2。16捕获/比较寄存器3(TIM1_CCR3):TIM1_CCR3寄存器用于保存捕获/比较通道3的计数值,偏移地址为3Ch,复位值为0000h。该寄存器功能与TIM1_CCR1一样,但控制捕/获比较通道3。17捕获/比较寄存器4(TIM1_CCR4):TIM1_CCR4寄存器用于保存捕获/比较通道4的计数值,偏移地址为40h,复位值为0000h。该寄存器功能与TIM1_CCR1一样,但控制捕/获比较通道4。图37,TI

44、M1_BDTR的地址18打断和死区寄存器(TIM1_BDTR):TIM1_BDTR寄存器用于控制中止及死区插入功能,偏移地址为44h,复位值为0000h,如图37。19,DMA控制寄存器(TIM1_DCR):TIM1_DCR寄存器用于控制DMA操作,偏移地址为48h,复位值为0000h,位域定义与通用定时器完全相同。20连续模式的DMA地址(TIM1_DMAR):TIM1_DMAR 寄存器偏移地址为4Ch,复位值为0000h,位域定义与通用定时完全相同。4 STM32系列开发工具STM32 微处理器基于ARM 核,所以很多基于ARM 嵌入式开发环境都可用于STM32开发平台。开发工具都可用于S

45、TM32 开发。选择合适的开发环境可以加快开发进度,节省开发成本。下面将先对STM32 常用的开发工具Keil MDK 进行简单介绍,然后讲解如何安装Keil u Vision3。4.1 Keil MDK工具Keil是德国知名软件公司Keil(现已并入ARM 公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVision)将这些功能组合在一起。uVision当前最高版本是uVision3,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发ARM应用的工程师,都对它十分喜欢。使用 Keil 来开发嵌入式软件,开发周期和其他的平台软件开发周期是差不多的,大致有以下几个步骤:1. 创建一个工程,选择一块目标芯片,并且做一些必要的工程配置。2. 编写 C 或者汇编源文件。3. 编译应用程序。4. 修改源程序中的错误。5. 联机调试。uVision3 IDE 是一款集编辑,编译和项目管理于一身的基于窗口的软件开发环境。uVision3 集成了C 语言编译

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号