@[TOC]STM8L TIM1相关配置
Tim1基本介绍
TIM1由一个由可编程预分频器驱动的16位上下自动重载计数器组成。定时器可用于多种用途,包括: •时基生成 •测量输入信号的脉冲长度(输入捕获) •生成输出波形(输出比较,PWM和单脉冲模式) •各种事件的中断功能(捕获,比较,溢出,中断,触发) •捕获,比较,溢出事件的DMA请求功能 •与其他定时器或外部信号同步(外部时钟,复位,触发可校准)。 该定时器非常适用于各种控制应用,包括那些需要具有互补输出和死区时间插入的中心对齐PWM功能的应用。 定时器时钟可以来自内部时钟,也可以来自可通过配置寄存器选择的外部源。
配置
以下代码 自己配置了一个30S定时器,使用系统内部高速时钟16M,1600分频,装载值10000,重复计时30次而实现。本人使用的是STM8L052C6T6。不同STM8略微不同。
代码
void TIM1_Config(void)
{
TIM1_DeInit();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1
, ENABLE);
TIM1_ClearITPendingBit(TIM1_IT_Update
);
TIM1_TimeBaseInit(1599,TIM1_CounterMode_Up
,10000,30);
TIM1_ARRPreloadConfig(ENABLE);
TIM1_ITConfig(TIM1_IT_Update
, ENABLE);
TIM1_GenerateEvent(TIM1_EventSource_Update
);
while(TIM1_GetITStatus(TIM1_IT_Update
) == RESET );
TIM1_ClearFlag(TIM1_IT_Update
);
TIM1_Cmd(ENABLE);
}