GD32实战12__定时器

引子

1.与PWM章节共用代码
2.生活中经常会用到下面几样,

  1. 闹钟,到时间了给出提醒
  2. 秒表(计时器),统计做一件事花费的时间

原理

在这里插入图片描述

如上图,定时器需要一个时钟输入,在每个时钟触发时,做如下操作

1. 计数器做增加或减少的操作
2. 跟目标值做比较,达到目标则触发中断,并重新把预置值设置到计数器中

因此,实际配置中需要配置如下几步

  1. 时钟源和分频系数等时钟参数
  2. 预置值和目标值
  3. 计数方式,增长和减少
  4. 循环方式,单次还是循环触发

配置举例

功能设计

​ 使用定时器2,控制LED灯每隔1秒亮一次。

定时器配置
  1. 配置分频,如图,定时器2的时钟来自AHB2(108M)–/2–>APB1(54M)–*2–>TIMER2(108M),因此为了实现1s计时,此处配成108MHz/108100=10KHz,故Prescaler = 10800-1。在这里插入图片描述

    TIMER_BaseInitParaStructure.TIMER_Prescaler = 10800-1; /* 10KHz */
    
  2. 配置计数方式

    TIMER_BaseInitParaStructure.TIMER_CounterMode = TIMER_COUNTER_UP;
    
  3. 配置预置值,第一步说把时钟配置成10KHz了,在10KHz的频率下,计数10000次,就是1s,故TIMER_Period = 10000-1

    TIMER_BaseInitParaStructure.TIMER_Period =<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值