STM32 通用定时器的一些概念解析

发布者:快乐的天使最新更新时间:2018-08-17 来源: eefocus关键字:STM32  通用定时器 手机看文章 扫描二维码
随时随地手机看文章

STM32一共有8个定时器,其中定TIM1和TIM8为高级控制定时器,除了具有通用定时器的功能外,还兼具控制功能,不仅能够输出PWM还可以采集编码器,驱动各种电机的功能。而基本定时器TIM6和TIM7一般不用作普通定时器,一般会给别的定时器提供基准时钟信号。


对于通用定时器TIM2~TIM5,基本的功能就不描述了,主要是看这些通用定时器如何使用:



TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

 

       

      TIM_DeInit(TIM2);                                           //重新将Timer设置为缺省值

       

      TIM_InternalClockConfig(TIM2);                              //采用内部时钟给TIM2提供时钟源      

      TIM_TimeBaseStructure.TIM_Prescaler = 36000 - 1;            //预分频系数为36000-1,这样计数器时钟为72MHz/36000 = 2kHz       

      TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;     //设置时钟分割      

      TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //设置计数器模式为向上计数模式       

      TIM_TimeBaseStructure.TIM_Period = 2000 - 1;           //设置计数溢出大小,每计2000个数就产生一个更新事件

      TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);         //将配置应用到TIM2中

      TIM_ClearFlag(TIM2, TIM_FLAG_Update);                  //清除溢出中断标志  

       

      TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);                //开启TIM2的中断


  这里要分析一下几个概念,也是理解定时器的功能的核心概念,通用定时器有些类似于操作系统的定时器节拍,可以在定时器采用的时钟源的基础上再进行分频,然后再设定溢出大小,进而实现定时的功能,当然自动重载功能更不再话下。


预分频的功能是使定时器在APB时钟的基础上再一次分频,使其独立的运行。就像上述代码中举例,预分频系数设定为36000-1,则表示该定时器的 时钟频率就变成了72MHz/36000 = 2KHz,而“计数溢出大小”可以理解为自动装载数值,表示每隔x个计数溢出一次,可以产生1次中断,当然这个频率是经过预分频后的频率。


所以从上述的分析可知,定时器的定时时间计算为:


                           Tout = (TIM_Period+1)*(TIM_Prescaler+1)/72000000


在本程序案例中:Tout= 2000*36000/72000000=1s


需要注意的是,公式中的72000000的使用,是因为该定时器采用的时钟源为72MHz,如果配置成别的时钟源,则相应公式也应该改变。


另外TIM_ClockDivision为时钟分割,这个简单的讲,就是定时器的数字滤波功能,设置成默认即可。


关键字:STM32  通用定时器 引用地址:STM32 通用定时器的一些概念解析

上一篇:STM32 输入捕获模式的滤波器设置
下一篇:STM32 SPI时钟问题

推荐阅读最新更新时间:2024-03-16 16:11

stm32专题二十:扩展SRAM
STM32 控制器芯片内部有一定大小的 SRAM 及 FLASH 作为内存和程序存储空间,但当程序较大,内存和程序空间不足时,就需要在 STM32芯片的外部扩展存储器了。注意,STM32F103VET6是不支持外扩SRAM的,因为引脚数量不够,而ZET6可以。 这里以IS62WV51216BLL为例: 芯片引脚图如下(40引脚来驱动): 结构框图如下: 引脚说明(要注意UB和LB,也就是高字节和低字节): 读操作时序要求: 可以看到,当给出地址后,最少要经过tAA的时间,才能去读取数据,以及输出时能后,要经过tODE的时间。只有满足这些时间要求,读到的数据才是正确的。 具体的时间参数: 同样的,写操作时
[单片机]
<font color='red'>stm32</font>专题二十:扩展SRAM
基于STM32单片机的DLP驱动电路研究
DLP投影技术是应用美国德州仪器公司开发的数字微镜元件--DMD(Digital Micromirror Device)作为主要关键处理元件以实现数字光学处理过程的技术。DLP显示的色彩清晰度高、艳丽、细腻、逼真,且为全数字显示即可靠性极高,能在各类产品(如大屏幕数字电视、公司/家庭/专业会议投影机和数码相机(DLP Cinema))中提供最佳图像效果。目前,大部分的家用或商用DLP投影机都采用了单片结构,使得其便于移动携带,因而得到越来越广泛的应用。在目前应用发展的基础上,又对其结构的精简性、携带的方便性提出了更高的要求。传统的DLP投影仪是通过DVI接口接收外部信号,并且经过信号转换传送给DLP控制器来控制DLP的显示,占用的
[单片机]
基于<font color='red'>STM32</font>单片机的DLP驱动电路研究
STM32按键控制流水灯 转换|加速|减慢
单片机源程序如下: #include stdio.h #include stm32f4xx.h #include led.h #include key.h int main(void) { int pwm_cmd; SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LED_Init(); KEY_Init(); EXTI_Config(); while(1) { }
[单片机]
<font color='red'>STM32</font>按键控制流水灯 转换|加速|减慢
STM32+Keil 中使用printf函数
Keil不支持Host-semi机制,即不支持直接在IDE打印字符串。 那么只能通过程序向硬件串口发数据了,这样调用的时候用自定义的函数即可,也很方便,例如: void send_char_to_usart(unsigned char c){} 但是可否直接使用printf函数呢?毕竟人家都做好了,我们给他定一个打印输出的接口就可以了,答案是肯定的,看ST的官方源码: /** ****************************************************************************** * @file Lib_DEBUG/Lib_DEBUG_Example/main.c *
[单片机]
STM32单片机按键电路设计
以前GPIO上接的电路都是低电平触发的那种,新画了个板子有一个按键设计的是高电平触发,结果IO口设置成上拉输入后,怎么读都不正确,按键电路如图1。无奈只能去调试一下,发现当设置为上拉输入后,其ODR(GPIO输出数据寄存器)相应的也置为1,百思不得其解。 图1 按键电路 于是去看一下GPIO的结构图: I/O引脚结构图 由图可以发现其实输出寄存器与输入寄存器之间在I/O引脚处是线与状态,在GPIO设置成上位输入时,其上拉电阻闭合,这时如果输出寄存器设置为0那么在IO口内部就会自己损耗电流,而这些电流的损耗是会增加功耗的。因此当GPIO设置成上拉输入时,相应的输出寄存器也设置为1. 将按键电路与I/O
[单片机]
<font color='red'>STM32</font>单片机按键电路设计
基于STM32的伺服压力机控制系统设计
1 引言 随着制造业朝着生产规模化、产品个性化的方向发展,产品型号变化加快,生产批量相对变小,多种型号共线生产、覆盖件大型化,一体化的趋势日益明显,要求压力机不仅能够高速度、高精度、大负载的运转,而且应具有更大的柔性,能迅速、方便地改变输出运动规律。以上这些不断提高的加工工艺和生产条件的多样化都促进了锻压设备行业的重大变革。在需求的推动下,目前,世界上出现伺服电机直接驱动的伺服压力机,能够满足塑性加工、难成形材料成形、复杂形状零件成形、复合成形以及高精度成形等成形工艺的要求。伺服压力机采用交流伺服电机代替普通交流电机,去除传统曲柄压力机上的飞轮和离合器,使得压力机机械结构得以简化,可靠性增强。所以研制适合不同材料加工要求的压力机数
[单片机]
基于<font color='red'>STM32</font>的伺服压力机控制系统设计
2023 STM32全国巡展,米尔限量发STM32MP135开发板优惠券
2023年9月12日至10月27日,以“STM32,不止于芯”为主题的第十六届STM32全国巡回研讨会将走进11个城市,本届研讨会为全天会议,我们将围绕STM32最新产品开展技术演讲和方案演示。 本次STM32全国研讨会,米尔电子将现场展出STM32相关的最新产品技术和应用演示,为工程师们提供共话交流共同探索开放式平台,届时,米尔电子的技术工程师将与各位嘉宾面对面深入交流。感兴趣的客户和朋友欢迎莅临参观了解! 米尔电子的明星产品将精彩亮相 米尔MYC-YF13X 核心板及开发板 基于STM32MP1系列MPU,STM32MP135高性价比入门级MPU设计平台,完整的安全生态系统让MCU开发者友好地过渡到MPU平
[单片机]
2023 <font color='red'>STM32</font>全国巡展,米尔限量发STM32MP135开发板优惠券
STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。 但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处 这可能是目前关于STM32CubeMX的硬件iic 讲的最全面和详细的一篇文章之一了 所用工具: 1、芯片: STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5、II
[单片机]
【<font color='red'>STM32</font>】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved