0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基本定时器Basic timer (TIM6/TIM7)

单片机匠人 ? 来源:单片机匠人 ? 作者:单片机匠人 ? 2022-05-07 10:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ENTER TITLE基本定时器Basic timer (TIM6/TIM7)

01TIM6和TIM7简介

基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。这2个定时器是互相独立的,不共享任何资源。

02主要特性

TIM6和TIM7定时器的主要功能包括:

5de7e006-cdae-11ec-bce3-dac502259ad0.png

①16位自动重装载累加计数器;

②16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频器;

③在更新事件(计数器溢出)时产生中断/DMA请求。

03功能

这个可编程定时器的主要部分是一个带有自动重装载的16位累加计数器,计数器的时钟通过一个预分频器得到。

软件可以读写计数器、自动重装载寄存器和预分频寄存器,即使计数器运行时也可以操作。

5e158f56-cdae-11ec-bce3-dac502259ad0.jpg

5e25b552-cdae-11ec-bce3-dac502259ad0.png

自动重装载寄存器是预加载的,每次读写自动重装载寄存器时,实际上是通过读写预加载寄存器(Prescaler control register)实现。

当TIMx_CR1寄存器的UDIS位为’0’,则每当计数器达到溢出值时,硬件发出更新事件;软件也可以产生更新事件。

根据TIMx_CR1寄存器中的自动重装载预加载使能位(ARPE),写入预加载寄存器的内容能够立即或在每次更新事件时,传送到它的影子寄存器。

计数器由预分频输出CK_CNT驱动,设置TIMx_CR1寄存器中的计数器使能位(CEN)使能计数器计数。

ENTER TITLE预分频器(Prescaler description)

预分频可以以系数介于1至65536之间的任意数值对计数器时钟分频。它是通过一个16位寄存器 (TIMx_PSC)的计数实现分频。因为TIMx_PSC控制寄存器具有缓冲,可以在运行过程中改变它的数值,新的预分频数值将在下一个更新事件时起作用。

5e158f56-cdae-11ec-bce3-dac502259ad0.jpg

5e25b552-cdae-11ec-bce3-dac502259ad0.png

预分频系数从1变到2的计数器时序图

ENTER TITLE计数模式

计数器从0累加计数到自动重装载数值(TIMx_ARR寄存器),然后重新从0开始计数并产生一个计数器溢出事件。

每次计数器溢出时可以产生更新事件;(通过软件或使用从模式控制器)设置TIMx_EGR寄存器的 UG位也可以产生更新事件。

设置TIMx_CR1中的UDIS位可以禁止产生UEV事件,这可以避免在写入预加载寄存器时更改影子寄存器。在清除UDIS位为’0’之前,将不再产生更新事件,但计数器和预分频器依然会在应产生更新事件时重新从0开始计数(但预分频系数不变)。

另外,如果设置了TIMx_CR1寄存器中的 URS(选择更新请求),设置UG位可以产生一次更新事件UEV,但不设置UIF标志(即没有中断或 DMA请求)。

当发生一次更新事件时,所有寄存器会被更新并(根据URS位)设置更新标志(TIMx_SR寄存器的UIF位):

● 传送预装载值(TIMx_PSC寄存器的内容)至预分频器的缓冲区。

● 自动重装载影子寄存器被更新为预装载值(TIMx_ARR)。

以下是一些在TIMx_ARR=0x36时不同时钟频率下计数器工作的图示例子。

计数器时序图:

5e58cec4-cdae-11ec-bce3-dac502259ad0.png

内部时钟分频系数为1

5e6e3962-cdae-11ec-bce3-dac502259ad0.png

内部时钟分频系数为2

ENTER TITLE时钟源

计数器的时钟由内部时钟(CK_INT)提供。

TIMx_CR1寄存器的CEN位和TIMx_EGR寄存器的UG位是实际的控制位,(除了UG位被自动清 除外)只能通过软件改变它们。一旦置CEN位为’1’,内部时钟即向预分频器提供时钟。下图示出控制电路和向上计数器在普通模式下,没有预分频器时的操作。

ENTER TITLE调试模式

微控制器进入调试模式(Cortex-M3核心停止)时,根据DBG模块中的配置位DBG_TIMx_STOP 的设置,TIMx计数器或者继续计数或者停止工作。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5440

    浏览量

    124997
  • 计数器
    +关注

    关注

    32

    文章

    2292

    浏览量

    96562
  • 定时器
    +关注

    关注

    23

    文章

    3302

    浏览量

    119445

原文标题:基于Stm32F030的基础定时器(Basic timer)学习笔记1

文章出处:【微信号:gh_e7f294a514ca,微信公众号:单片机匠人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【微五科技CF5010RBT60开发板试用体验】+高级定时器输出PWM测试

    电机驱动需要3相6开关信号进行驱动,这个测评测试高级定时器产生PWM波的功能;定时器可以分为3个模块,第一个模块是时基单元,为了设置定时器基本计数模式等,第二个模块是输出(OC)模块,
    发表于 07-25 08:43

    第二十二章 TIM——高级定时器

    本章介绍了W55MH32的高级定时器TIM1和TIM8),其含时基单元等,具备输入捕获、输出比较、PWM生成等功能,还支持互补输出、死区插入等,适用于工业电机控制,也提及相关配置结构体。
    的头像 发表于 06-20 13:58 ?808次阅读
    第二十二章 <b class='flag-5'>TIM</b>——高级<b class='flag-5'>定时器</b>

    第二十一章 TIM——通用定时器

    本篇文章介绍了W55MH32的通用定时器TIM2~TIM5等),其由16位自动装载计数和可编程预分频构成,具备输入捕获、输出比较、PW
    的头像 发表于 06-20 13:57 ?876次阅读
    第二十一章 <b class='flag-5'>TIM</b>——通用<b class='flag-5'>定时器</b>

    第二十章 TIM——基本定时器

    本章介绍了W55H32基本定时器TIM6TIM7,16位向上计数,含时钟源、预分频等,讲解定时计算及初始化结构体。
    的头像 发表于 06-20 13:51 ?434次阅读
    第二十章 <b class='flag-5'>TIM</b>——基本<b class='flag-5'>定时器</b>

    comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM呢?

    那不是一个定时器的话 怎么能保证COMP1的消隐触发同步呢?假设pwm输出是tim1_ch2,那么我消隐源可以选tim4_oc3?是不是tim1_oc5跟合理?
    发表于 06-09 07:12

    TIMER定时器

    TIMER0和TIMER7定时器载波相位有偏差,如何解决
    发表于 06-06 14:41

    comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM呀?

    那不是一个定时器的话 怎么能保证COMP1的消隐触发同步呢?假设pwm输出是tim1_ch2,那么我消隐源可以选tim4_oc3?是不是tim1_oc5跟合理?
    发表于 06-05 06:10

    WIZnet W55MH32以太网单片机开发教程 第十一章 通用定时器(上篇)

    本章介绍了W55MH32的通用定时器TIM2~TIM5,其由 16 位计数等构成,具输入捕获等功能,有多种计数模式及时钟选择。对例程进行了讲解并下载验证,
    的头像 发表于 05-28 10:12 ?430次阅读
    WIZnet W55MH32以太网单片机开发教程 第十一章 通用<b class='flag-5'>定时器</b>(上篇)

    comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM呢?

    那不是一个定时器的话 怎么能保证COMP1的消隐触发同步呢?假设pwm输出是tim1_ch2,那么我消隐源可以选tim4_oc3?是不是tim1_oc5跟合理?
    发表于 05-14 08:14

    一文读懂热界面材料:TIM1与TIM2的奇妙世界

    TIM1:芯片的“贴身保镖”2025ThermalLink在热界面材料的世界里,TIM1堪称芯片的“贴身保镖”。它通常紧紧地贴附在芯片(如CPU、GPU等核心芯片)与均热板(IHS)之间,就像给芯片
    的头像 发表于 05-11 06:41 ?821次阅读
    一文读懂热界面材料:<b class='flag-5'>TIM</b>1与<b class='flag-5'>TIM</b>2的奇妙世界

    TIM2输入捕获,DMA开启中断传输输入捕获数据,程序跑的过程中,DMA一直中断,TIM6只触发一次中断,怎么解决?

    TIM2捕获输入的数据,并且通过DMA存储,在开启DMA中断同时,TIM6中断也开启(用于计时)。但是程序跑的过程中,DMA一直中断,TIM6只触发一次中断。
    发表于 03-14 06:39

    使用STM32F1输入捕获功能时,TIM6TIM7无法实现输入捕获是哪里的问题?

    使用STM32F1输入捕获功能时,TIM6TIM7无法实现输入捕获,是芯片问题吗?在配置STM32F1的TIM6TIM7定时器时,发现无
    发表于 09-27 09:11

    在rtthread启动函数中调用HAL_Dealy()导致卡死的原因?

    TIM6定时器中断根本进不去,其计数变量自然也不会增加,可是将初始化都放到启动调度之后,也就是main()就一切正常,所以还是不推荐都放入rt_hw_board_init()中。 具体什么原因并不知道
    发表于 09-27 06:42

    使用如下定时器配置PWM,直接卡死了是什么原因呢?

    请教各位大牛一个问题,卡住我几天了。我使用如下定时器配置PWM,如下示: PA6 -> PWM0 tim1_cha(4) PA7 -> PWM1
    发表于 09-27 06:21

    STM32CUBEMX(5)--自定义红外NEC解码,定时器TIM捕获方式

    */ HAL_TIM_Base_Start_IT(&htim1);//启动定时器 HAL_TIM_IC_Start_IT(&htim1,TIM_CHANNEL_2
    发表于 09-05 16:19