STM8L定时器1和定时器4的简单用法

背景介绍

笔者在最近的项目中需要同时使用STM8L单片机的多个定时器。STM8L系列单片机定时器4(TIM4)相关的例程很多,稍微修改一下也能用,但是定时器1(TIM1)相关的用法介绍就很少,某些例程根本就无法正常工作。基于此,笔者将STM8L的定时器用法介绍一下,并给出参考代码。

调试环境

硬件:STM8L151K4T6最小系统板
IDE:IAR for STM8 (v7.14版本)
烧写工具:STVP

简介

STM8系列单片机包括三种类型的定时器。一种是16位高级控制型定时器,功能较为强大,可以实现定时、计数、外部PWM输出、输入捕获等多种功能,典型的有TIM1;第二种为通用型16位定时器,典型的有TIM2、TIM3;第三种是8位基本型定时器,主要是指TIM4。这里我们只使用到定时器的最基本的定时功能,并使用TIM4和TIM1来举例说明。

TIM4使用方法
首先是最基础的8位定时器TIM4,寄存器介绍请参考数据手册。这里只介绍初始化的步骤:

  1. 打开外设时钟CLK_PCKENR1
  2. 设置预分频寄存器TIM4_PSCR
  3. 设置计数器值TIM4_CNTR
  4. 设置自动重载寄存器TIM4_ARR
  5. 开定时器中断TIM4_IER
  6. 开总中断;
  7. 使能计数器TIM4_CR1

参考代码如下:(具体定时时间的用法看代码备注

//TIM4初始化
void Init_Timer4(void)
{
    CLK_PCKENR1=0x04; //L系列外设时钟默认关闭,需打开
    TIM4_EGR=0x01;    //计数器更新,可省略
    TIM4_PSCR=0x07;//分频值(2^7)/8M=16us,16us*255*122=500ms 
    TIM4_CNTR=255;//计数器值
    TIM4_ARR=255;//自动重装的值
    TIM4_CR1=0x01;//使能计数器
    TIM4_IER=0x01;//更新中断使能
}
//TIM4中断处理函数
#pragma vector=TIM4_UIF_vector
__interrupt void TIM4_UIF_IRQHandler(void)
{
    i++;
    TIM4_SR1=0x00;
    if(i==122)
    {
        LED_PORT^=1;//亮灯验证TIM4正常工作
        i=0;
    } 
}

TIM1使用方法
TIM1的使用方法和TIM4类似,只是由于是16位,寄存器存在差别,使用步骤可以参考TIM4,这里给出代码如下:(具体定时时间的用法看代码备注

//TIM1初始化
void Init_Timer1(void)
{
    CLK_PCKENR2 = 0x02; //L系列外设时钟默认关闭,需打开
    //TIM1_EGR=0x01;    //计数器更新
    TIM1_PSCRH=0x1F;//分频值 8m/(1F3F+1)= 1000Hz=1ms
    TIM1_PSCRL=0x3F;//分频值
    TIM1_ARRH=0;//自动重装的值
    TIM1_ARRL=0x31;//自动重装的值 49*1ms=49ms,频谱测试50ms
    TIM1_CNTRH=0;//计数器值
    TIM1_CNTRL=0x31;//计数器值
    TIM1_IER=0x01;//更新中断使能
    TIM1_CR1=0x01;//使能计数器
}
//TIM1中断处理函数
#pragma vector=TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF_IRQHandler(void)
{
    i++;
    TIM1_SR1=0x00;
    if(i==10)
    {
        LED_PORT^=1;//异或
        i=0;
    }
}

测试结果

使用示波器测试结果如下:
在这里插入图片描述
参考代码下载
1.CSDN下载https://download.csdn.net/download/zwwasd/12569912
2.码云代码https://gitee.com/wenweis/STM8L151_timer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值