STM8L052定时器1配置30S

    xiaoxiao2022-07-13  143

    @[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);//30S 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); }
    最新回复(0)