定时器

计数器时钟源提供方案

1、内部时钟(CK_INT)

2、外部时钟模式1:外部输入脚(TIx)

3、外部时钟模式2:外部触发输入(ETR)

4、内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器

计数器模式:

向上计数、向下计数、向上向下双向计数模式



时钟计算方法:

除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍


向上计数:



寄存器:

计数器当前值寄存器  16位  TIMx_CNT

预分频寄存器            16位  TIMx_PSC

                                CK_CNT的值=Fck_psc/(PSC[15:0]+1)

自动重装载寄存器        16位    TIMx_ARR

控制寄存器1        TIMx_CR1           

中断使能寄存器    TIMx_DIER


库函数

定时器参数初始化 void TIM_TimeBaseInit(TIM_TypeDef* TIMx,TIM_TimeBaseInitTypeDef* TimeBaseInitStruct)

定时器使能函数    voidTIM_Cmd(TIM_TypeDef* TIMx,FunctionalState NewState)

定时器中断使能函数    voidTIM_ITConfig(TIm_TypeDef* TIMx,uint16_t tim_it,FunctionalState NewState)

状态标志位获取或清除    

FlagStatus    TIM_GetFlagStatus(TIM_TypeDef* TIMx,uint16_t TIMFLAG)

void TIM_ClearFlag()

ITStatus  TIM_GetITStatus()

void TIM_ClearITPendingBit()


定时器中断实现

1、使能定时器时钟

    RCC_APB1PeriphClockCmd()

2、定时器初始化,配置ARR,PSC

    TIM_TimeBaseInit()

3、开启定时器中断

    void TIM_ITConfig()

    NVIC_Init()

4、使能定时器

    TIM_Cmd()

5、编写中断服务函数

    TIMx_IRQHandler()

阅读更多
个人分类: STM32
想对作者说点什么? 我来说一句

定时器的使用定时器的使用

2011年03月23日 73KB 下载

中断定时器.

2011年10月13日 822KB 下载

C# 服务器定时器使用

2010年10月24日 174KB 下载

郭天祥单片机定时器课件

2011年07月18日 531KB 下载

MS(终端)定时器介绍

2010年03月18日 132KB 下载

简易定时器

2013年03月03日 20KB 下载

内核定时器内核定时器

2011年06月19日 4KB 下载

没有更多推荐了,返回首页

不良信息举报

定时器

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭