STM8定时器

目录

一、定时器的工作原理

二、定时器功能的实现

(a)官方提供的定时器4的例程

(b)修改官方提供的例程,使其更加符合我们的需求

(c)代码分析

(d)代码汇总

三、利用定时器4完成一个systick

(1)修改定时器4的参数

(2)参数的简单计算

(3)在上面的基础上修改代码,实现systick


一、定时器的工作原理

        定时器:定时器的作用主要就是用来精准定时的。

        定时器的本质就是一个计数器,这里涉及两个关键参数

        ● 单位计数周期:

        ● 定时器计数的个数:

        举例: 如果我们要做一个2分钟的定时,如果单位是秒,计数的个数:120;如果单位是分钟,计数的个数:2

二、定时器功能的实现

首先,我们通过STM8L101单片机的规格书查看,STM8L101单片机有TIM2和TIM3(16bit)、TIM4(8bit)

我们通过官方的例程来查看官方提供的例程。本节课我们用定时器4来实现LED灯的反转。

(a)官方提供的定时器4的例程

(b)修改官方提供的例程,使其更加符合我们的需求

● 修改定时器4的分频

TIM4_TimeBaseInit(TIM4_Prescaler_16384, 0xFF);

● //将测试的IO口配置成PA3

GPIO_Init(GPIOA, GPIO_Pin_0, GPIO_Mode_Out_PP_Low_Fast);

● 配置系统主时钟 (重要)

CLK_MasterPrescalerConfig(CLK_MasterPrescaler_HSIDiv1);

系统时钟: 内部16M

(c)代码分析

实际 工作中,外设部分的代码,我们先移植别人的代码,实现对应功能,然后再分析代码。

(d)代码汇总

三、利用定时器4完成一个systick

        因为STM8单片机是一个资源相对较少的单片机,所以我们自己做一个简单的系统tick。系统tick的周期为1ms,这1ms我们用定时器4来实现。

(1)修改定时器4的参数

(2)参数的简单计算

STM8L单片机的内部时钟是16MHZ,如果64分频后就是250k,相当于周期是4us。

计数的个数是4us*250=1ms

(3)在上面的基础上修改代码,实现systick

● 新建hal_tim4.c 和hal_tim4.h 文件,并加载到标准工程中:

hal_tim4.c

hal_tim4.h

main.c

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值