stm32——通用定时器

通用定时器概述

STM32F10x系列最多有8个定时器

三种STM32定时器区别

 

定时器种类

位数

计数器模式

产生DMA请求

捕获/比较通道

互补输出

特殊应用场景

高级定时器

TIM1,TIM8)

16

向上,向下,向上/

可以

4

带死区控制盒紧急刹车,可应用于PWM电机控制

通用定时器(TIM2~TIM5

16

向上,向下,向上/

可以

4

通用。定时计数,PWM输出,输入捕获,输出比较

基本定时器

(TIM6,TIM7)

16

向上,向下,向上/

可以

0

主要应用于驱动DAC

通用定时器功能特点描述

STM32的通用TIMx(TIM2\TIM3\TIM4和TIM5)定时器功能特点包括

1.位于低速的APB1总线上(APB1)

2.16位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)

3.16位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为1-65535之间的任意数值。

4.4个独立通道(TIMx_CH1~4),这些通道可以用来作为:

1》输入捕获

2》输出比较

3》PWM生成(边缘或中间对齐模式)

4》单脉冲模式输出

5.可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用一个定时器控制另一个定时器)的同步电路

如下事件发生时产生中断/DMA(六个独立的IQR/DMA请求生成器)

插一句DMA的基本定义

(

DMA的定义

直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。在同等程度的CPU负担下,DMA是一种快速的数据传送方式。它允许不同速度的硬件装置来沟通,而不需要依于 CPU的大量中断请求。

DMA有什么用?

直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。

)

1.更新:计数器向上溢出或向下溢出,计数器初始化(通过软件或者内部/外部触发计数)

2.触发事件(计数器启动、停止、初始化或者内部外部触发计数)

3.输入捕获

4.输出比较

5.支持针对定位的增量(正交)编码器和霍尔传感器电路

6.触发输入作为外部时钟或者按周期的电流管理

STM32能作用于那些地方呢??????????

测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。

使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒之间调整,STM32的每个通用寄存器都是完全独立的,没有互相共享的任何资源。

计数器模式

通用计时器可以向上计数、向下计数、向上向下双向计数模式。

1.向上计数模式:计数器从0计数到自动加载值(TIMx——ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

2.向下计数模式:计数器从自动装入的值(TIMx——ARR)开始向下计数到0,然后自动装入的值重新开始,并产生一个计数器向下溢出事件。

3.中央对齐模式(向上\向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件,然后再从0开始重新计数。

通用定时器工作过程

计数时钟的选择

时基单元

计数器寄存器(TIMx_CNT):向上计数或向下计数或中心对齐向计数

预分频器寄存器(TIMx_PSC):可将时钟频率按1~65536之间的任意值进行分频,可在运行时改变其设置值。

自动装载寄存器(TIMx_ARR):如果TIM1_CR1寄存器中的ARPE位为0,ARR寄存器的内容将直接写入影子寄存器;

如果ARPE为1,ARR寄存器的内容将在每次的更新事件UEV发生时,传送到影子寄存器

如果TIM1_CR1寄存器中的ARPE位为1,当计数器产生溢出条件时,产生更新事件。

更新事件                                         

将预载寄存器的内容写入影子寄存器:1.立即 2。在每次更新事件发生时

产生更新事件的条件:1.计数器上溢或者下溢时2.当循环计数器的计数值为0时(仅适用于TIM1)3.通过软件设置UG(Update Generation)位

更新事件请求源:1.URS = 1——仅当计数器达到上溢或者下溢时,发生更新请求

2.URS = 0——仅当计数器达到上溢或者下溢时,更新位的设置或者从模式控制器产生的更新,将发生更新请求。

 

 

 

 

 

 

(资料源于正点原子)

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在STM32上实现电子时钟,可以使用STM32通用定时器模块。通用定时器包括TIM2到TIM5,具有灵活的计时和计数功能,并且可以与外部时钟源进行同步。 首先,需要配置系统时钟源。STM32有四个独立的时钟源可供选择:HSI、HSE、LSI和LSE。HSI是高速内部时钟,频率为8MHz。HSE是高速外部时钟,可以接石英/陶瓷谐振器或外部时钟源,频率范围为4MHz到16MHz。LSI是低速内部时钟,频率为40kHz,可用作低功耗时钟和RTC时钟源。LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 接下来,选择一个合适的通用定时器模块(TIM2到TIM5)。通用定时器具有灵活的计数和计时功能,并且可以与外部时钟源同步。可以根据具体需求选择适当的模块。 然后,根据需要配置定时器的工作模式。通用定时器可以配置为计数器模式,用于测量时间间隔,或者配置为输出比较模式,用于产生精确的定时脉冲。 最后,根据需要编写相应的代码来实现电子时钟的功能。通过配置定时器的时钟源、计时模式和输出比较模式,可以实现电子时钟的计时和显示功能。 请注意,以上提供的是一个基本的框架,具体的实现细节和代码可能因不同的STM32型号和开发环境而有所差异。建议参考相关的技术文档和示例代码来进行具体的开发。 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【STM32】7—通用定时器 & 时钟树学习](https://blog.csdn.net/yck1716/article/details/124597560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [STM32通用定时器](https://blog.csdn.net/weixin_56162053/article/details/126225875)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [STM32理论 —— 定时器、时钟](https://blog.csdn.net/weixin_43559366/article/details/130233271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值