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计数器或者继续计数或者停止工作。

审核编辑 :李倩

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

    关注

    30

    文章

    5036

    浏览量

    117762
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    92996
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112048

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

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

收藏 人收藏

    评论

    相关推荐

    STM32通过DMA方式传输TIM3定时器计数值,数值重复是为什么?

    AD值防止数据错乱,故DMA配置必须放在ADC之前。) 因此为了排除相同原因导致的数据重复,所以将DMA配置放在TIM3定时器初始化之前。 结果反馈,TIM3计数数值重复 3.D
    发表于 04-10 06:50

    TIM6定时器不能进入中断怎么解决?

    AD转换并使能DMA传输和中断 HAL_TIM_Base_Start_IT( htim1); //初始化定时器中断 HAL_TIM_Base_Start_IT( htim6); //初
    发表于 04-09 08:19

    请问系统定时器TIM定时器有哪些区别?

    请问系统定时器TIM定时器有哪些区别
    发表于 03-20 07:40

    STM32L0采用tim6上升沿触发使ADC采样,把定时器频率配为4K后,采样周期不对,为什么?

    目前使用的是STM32L0系列芯片,采用tim6上升沿触发使ADC采样,但把定时器频率配为4K后,采样周期不对,首先想问tim6的时钟源来自哪,其次是这个定时器频率与采样频率的关系与计
    发表于 03-20 06:18

    STM32L053R8T6TR利用定时器触发ADC采样时选用tim6,为什么在cubenx中tim6无法选择时钟源?

    使用的是STM32L053R8T6TR,再利用定时器触发ADC采样时选用tim6,但在cubenx中tim6无法选择时钟源,那他的时钟源在哪,而且单独配置
    发表于 03-19 07:00

    stm32f10x高级定时器TIM1和通用定时器TIM2~TIM4如何同步作用?

    TIM2~TIM4我都用了,现在还需要用一个计时,但是只要我在定时器初始化加上TIM1的初始化,还没写中断函数,其他程序就什么都运行不了了
    发表于 03-19 06:26

    stm32f030c8的tim6tim15没有响应是为什么?

    stm32f030c8的芯片,tim6tim15没有响应,其他的时钟中断都可以响应。开发环境是STM32CubeMX_V6.8.1+Keil_V5.36,有哪位知道怎么解决。 原来
    发表于 03-18 07:24

    STM32速成笔记(6)—定时器

    关于什么是定时器,简单来讲,就是是用来定时的。STM32F103ZET6有两个基本定时器TIM6TIM7,四个通用
    的头像 发表于 10-24 09:41 1702次阅读
    STM32速成笔记(6)—<b class='flag-5'>定时器</b>

    定时器TIM5进不了中断如何解决?

    !!! //定时器5初始化 //定时0.5s每0.5s进一次定时中断 void TIM5_Enable(u16 arr) { TIM
    发表于 09-25 07:37

    STM32L053R8T6TR在cubenx中tim6无法选择时钟源是为什么?

    使用的是STM32L053R8T6TR,再利用定时器触发ADC采样时选用tim6,但在cubenx中tim6无法选择时钟源,那他的时钟源在哪,而且单独配置
    发表于 08-07 06:50

    stm32f030c8的tim6tim15怎么设置都不响应怎么解决?

    stm32f030c8的芯片,tim6tim15没有响应,其他的时钟中断都可以响应。开发环境是STM32CubeMX_V6.8.1+Keil_V5.36,有哪位知道怎么解决。 原来
    发表于 08-05 07:23

    STM32 TIM—基本定时器

    STM32F4xx系列控制器有共有14个TIM定时器。其中2个高级控制定时器TIM1和TIM8、10 个通用
    的头像 发表于 07-22 17:05 3346次阅读
    STM32 <b class='flag-5'>TIM</b>—基本<b class='flag-5'>定时器</b>

    STM32定时器(二)定时器中断

    常规定时器:基本定时器TIM6&TIM7)、通用定时器TIM2~
    的头像 发表于 07-21 14:54 1870次阅读
    STM32<b class='flag-5'>定时器</b>(二)<b class='flag-5'>定时器</b>中断

    MindSDK应用基础—TIM模块样例

    MindSDK为MM32使用星辰处理器内核的系列微控制器,实现了一组TIM样例工程,MindSDK中的TIM模块对应硬件定时器TIM外设。
    的头像 发表于 06-29 17:16 613次阅读

    【正点原子STM32探索者V3开发板体验】定时器非中断事件(手动或外部事件重置)按键输入

    这里分别设置定时器6 100毫秒触发一次更新事件,定时器7 500毫秒,定时器12 1秒: void T
    发表于 05-05 18:19