【STM32】HAL库-基本定时器

本文详细介绍了STM32中的基本定时器TIM6和TIM7,包括它们的结构、功能和寄存器操作。这两个独立的16位定时器常用于提供时间基准,尤其适用于驱动DAC。计数器、自动重装载寄存器和预分频寄存器在运行时可被软件读写,并具有影子寄存器。更新事件的使能和来源、时钟源及软件触发更新事件的方法也进行了说明。此外,还提到了基本定时器在主从模式下如何作为DAC的外部触发转换源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

基本定时器TIM6和TIM7各包含一个16位自动装载计数器,由各自的可编程预分频器驱动。它们可以作为通用定时器提供时间基准,特别地可以为数模转换器(DAC)提供时钟。实际上,它们在芯片内部直接连接到DAC并通过触发输出直接驱动DAC。这2个定时器是互相独立的,不共享任何资源。
在这里插入图片描述

在这里插入图片描述

寄存器

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

  • 当前计数值寄存器CNT
    向上计数可随时修改

  • 自动重装载寄存器ARR
    可随时修改,具有影子寄存器,根据TIMx_CR1寄存器中的自动重装载预加载使能位(ARPE),写入ARR寄存器的内容能够立即或在每次更新事件(UEV)时,传送到它的影子寄存器。真正起作用的是其影子寄存器
    在这里插入图片描述

  • 预分频寄存器PSC
    可随时修改,具有影子寄存器,具有缓冲,新的预分频数值将在下一个更新事件时起作用(发生更新事件(UEV)时才将值传送到其影子寄存器中)。

更新事件UEV的使能与来源

  • 更新事件UEV的使能位
    TIMx_CR1寄存器的UDIS位
    在这里插入图片描述
    UDIS位为0则将不再产生更新事件,但计数器和预分频器的计数器依然会在应产生更新事件时重新从0开始计数
    UDIS位为1,当发生一次更新事件时所有影子寄存器会被更新
  • 更新事件UEV的来源
    更新中断和DMA请求的来源
    TIMx_CR1寄存器的URS位
    在这里插入图片描述

时钟源

定时器由内部时钟(CK_INT)提供。
内部时钟向预分频器PSC提供时钟,并不向CNT寄存器提供时钟。
CK_PSC = CK_INT
CNT计数器的时钟由CK_CNT提供,CK_CNT的时钟频率等于fCK_PSC/(PSC[15:0]+1)

软件触发更新事件

写入事件产生寄存器TIM_EGR寄存器的UG位
置位UG位则产生更新事件
设置UG位可以产生一次更新事件UEV,但不设置UIF标志(即没有中断或
DMA请求)。

在这里插入图片描述

主从模式-DAC的外部触发转换

前面介绍,基本定时器内部连接DAC,可为DAC提供基准时钟。
如果配置DAC的转换由外部事件控制,则触发/产生外部事件时将进行一次DAC的转换。该外设事件可以为定时器计数器、外部中断线。
具体看下图
在这里插入图片描述
基本定时器可以产生TRGO事件
通过TIM_CR2寄存器的MMS位来选择TRGO事件的来源。
在这里插入图片描述

基本定时器没有从模式控制器,故只能作为主模式

STM32CubeMX配置
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值