机电传动控制 实验7定时器实验.docxVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七 定时器实验 实验目的 掌握STM32定时器工作原理; 掌握STM32定时器中断处理函数的写法; 掌握STM32定时器相关寄存器的使用方法。 实验内容 在实验6的基础之上新建TIM3.c、TIM3.h实现LED1~LED4每隔1s改变一次输出状态的功能。 预备知识 定时器与计数器的相关概念; 实验设备及工具 硬件:PC机、STM32开发板、JLINK_V8仿真器; 软件:KEIL MDK4.12、JLINK_V8驱动。 实验原理及说明 STM32定时器概述: STM32F103增强系列产品包括2个高级控制定时器、4个通用定时器、2个基本定时器、1个实时时钟和1个系统滴答定时器(SysTick时钟)。 4个通用定时器 (TIM2~TIM5)中,每个 定时器都有一个16位的自动加载 递增/递减计数器、一个16位的预分频器和4个独立的通道。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获),或者产生需要的输出波形(输出比较、PWM、单脉冲输出等)。 2个高级控制定时器(TIM1和TIM8)处具备上述功能之外还可以产生带死区的互补PWM输出。 2个基本定时器(TIM6和TIM7)主要用于产生DAC触发信号,也可以当做通用的16位定时器。 SysTick时钟位于CM3内核中,是一个24位的递减计数器。将其设定初值并使能后,每经过一个系统时钟周期,计数值就减1。计数到0时,SysTick计数器自动重装初值并继续计数,同时内部的COUNTFLAG标志会置位,从而触发中断,在STM32中使用CM3内核的SysTick作为定时时钟,主要用于精确延时。 通用定时器TIMx功能 16位向上、向下、向上/向下自动装载计数器。 16位可编程(支持实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值。 4个独立通道,即输入捕获、输出比较、PWM生成(变验货中间对齐模式)和单脉冲输出模式。 使用外部信号和多个定时器内部互联,构成同步电路来控制定时器。 下述事件发生时产生中断或DMA更新:计数器向上/向下溢出,计数器初始化(通过软件或内部/外部触发);触发事件(计数器启动、停止、初始化,或者由内部/外部触发计数);输入捕获;输出比较。 支持针对定位的增量(正交)编码器和霍尔传感器电路。 触发输入作为外部时钟,或者按周期的电流管理。 相关寄存器 由于 STM32 通用定时器比较复杂,这里我们不再多介绍,请大家直接 参考《STM32 参考手册》第 211 页,通用定时器一章。下面我们介绍一下 与我们这节实验密切相关的几个通用定时器的寄存器。 控制寄存器 1 TIMx_CR1,该寄存器的各位描述如下: DMA/中断使能寄存器(TIMx_DIER)。该寄存器是一个 16 位的寄存器,其 各位描述如下: 这里我们仅关心它的第6 位和第0位,第 6 位 TIE 为触发中断使能 位,通过将该位置1 使能 TIMx 的中断触发,注意只要是 TIMx 需要使用 中断,该位必须为 1。而第 0 位,则为允许更新中断位,通过置 1 ,来允 许由于更新事件而产生的中断。 预分频寄存器( TIMx_PSC)。该寄存器用设置对时钟进行分频,然后提 供给计数器,作为计数器的时钟。该寄存器的各位描述如下: 这里,我们的时钟来源有4个: 内部时钟(CK_INT) 外部时钟模式1:外部输入脚(TIx) 外部时钟模式2:外部触发输入(ETR) 内部触发输入(ITRx): 使用A定时器作为B定时器的预分频器(A为B提供时钟)。这些时钟,具体选择哪个可以通过 TIMx_SMCR 寄存器的相关位来设置。这里的 CK_INT时钟是从 APB1 倍频的来的,除非 APB1 的时钟分频数设置为 1,否则通用定时器 TIMx 的时钟是 APB1 时钟的 2 倍,当 APB1 的时钟不分频的时候,通用定时器 TIMx 的时钟就等于 APB1的时钟。这里还要注意的就是高级定时器的时钟不是来自 APB1,而是来自 APB2 的。 这里顺带介绍一下 TIMx_CNT 寄存器,该寄存器是定时器的计数器,该寄存器存储了当前定时器的计数值。 接着我们介绍自动重装载寄存器(TIMx_ARR),该寄存器在物理上实际对应着 2个寄存器。一个是程序员可以直接操作的,另外一个是程序员看不到的,这个看不到的寄存器在《STM32参考手册》里面被叫做影子寄存器。事实上真正起作用的是影子寄存器。根据 TIMx_CR1 寄存器中 APRE 位的设置:APRE=0 时,预装载寄存器的内容可以随时传送到影子寄存器,此时2者是连通的;而 APRE=1 时,在每一次更新事件(UEV)时,才把预装在寄存器的内容传送到影子寄存器。 自动重装载寄存器的各位描述如下: 最后,我们要介绍的寄存器是:状态寄存器(T

您可能关注的文档

文档评论(0)

卖报的小行家 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档