基于ARM的单片机应用及实践课件第六章汇编.pptx

基于ARM的单片机应用及实践课件第六章汇编.pptx

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM的单片机应用及实践课件第六章汇编

第六章 STM32 定时器的使用 本章内容 STM32F的定时器简介 通用定时器时基单元 通用定时器特殊工作模式 定时器编程及实训 第六章 STM32 定时器的使用 STM32中一共有11个定时器: 2个高级控制定时器 4个普通定时器 2个基本定时器 2个看门狗定时器 1个系统嘀嗒定时器。 TIM1,TIM8是能够产生三对PWM互补输出的高级定时器,常用于电动机的控制。它们的时钟由APB2的输出产生。 TIM2~TIM5是通用定时器: 输入捕获 输出比较 PWM 脉冲计数 TIM6和TIM7是基本定时器: 主要用于产生DAC触发信号,其时钟由APB1输出产生 第六章 STM32 定时器的使用 系统时基定时器SysTick: 24位递减计数器 自动重加载 常用于产生延时us级、ms级 定时器的工作频率计算公式为 CK_CNT=定时器时钟/(TIMx_PSC+1) 其中CK_CNT表示定时器工作频率 TIMx_PSC表示分频系数 第六章 STM32 定时器的使用 typedef struct { vu32 CTRL; //SysTick控制和状态寄存器 vu32 LOAD; //SysTick重装载值寄存器 vu32 VAL; //SysTick当前值寄存器 vuc32 CALIB; //SysTick校准值寄存器 } SysTick_TypeDef; 第六章 STM32 定时器的使用 库函数: SysTick_CLKSourceConfig函数 SysTick_Setreload函数 SysTick_CounterCmd函数 SysTick_ITConfig函数 SysTick_GetCounter函数 SysTick_GetFlagStatus函数 第六章 STM32 定时器的使用 STM32的通用定时器TIM,是一个通过可编程预分频器驱动的16位自动装载计数器构成。 通用TIMx定时器特性包括: 具备16位向上,向下,向上/向下自动装载计数器。 具备16位可编程预分频器。 具备4个独立通道。 使用外部信号控制定时器和定时器互连的同步电路。 可以通过事件产生中断,中断类型丰富。 具备DMA功能。 第六章 STM32 定时器的使用 第六章 STM32 定时器的使用 第六章 STM32 定时器的使用 从上图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的浅蓝色部分。 这个倍频器的作用:当APB1的预分频系数为1时,倍频器不起作用,定时器的时钟频率等于APB1的频率; 当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。 下面举一个例子说明。假定AHB=36MHz,因为APB1允许的最大频率为36MHz,所以APB1的预分频系数可以取任意数值;当预分频系数=1时,APB1=36MHz,TIM2~7的时钟频率=36MHz(倍频器不起作用); 当预分频系数=2时,APB1=18MHz,在倍频器的作用下,TIM2~7的时钟频率=36MHz。 既然需要TIM2~7的时钟频率=36MHz,为什么不直接取APB1的预分频系数=1? 第六章 STM32 定时器的使用 答案是:APB1不但要为TIM2~7提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM2~7仍能得到较高的时钟频率。 第六章 STM32 定时器的使用 例如普通定时器的时钟为72MHz,分频比为7199,那么我们想要得到一个1秒钟的定时,定时计数器的值需要设定为 TIMx_ARR =10000 因/ 7200 =10KHz 时钟周期T=1/10KHz=100us 100us × 10000 =1S 结论 :分频比7199 定时计数器的值10000。 第六章 STM32 定时器的使用 第六章 STM32 定时器的使用 通用定时器配置步骤 14 1)TIM3时钟使能 这里我们通过APB1ENR的第1位来设置TIM3的时钟,因为Stm32_Clock_Init函数里面把APB1的分频设置为2了,所以我们的TIM3时钟就是APB1时钟的2倍,等于系统时钟(72M)。 2)设置TIM3_ARR和TIM3_PSC的值 通过这两个寄存器,设置自动重装的值及分频系数。这两个参数加上时钟频率就决定了定时器的溢出时间。 3)设置TIM3_DIER允许更新中断 因为我们要使用TIM3的更新中断,所以设置DIER的UIE位

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档