0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GD32对Timer定时器原理的详细讲解

开山师傅 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-04-22 17:02 次阅读

GD32 Timr定时器看起来比较复杂啊。一看GD32E10x 的SPEC:一个高级定时器,三个通用定时器,还有一个基本定时器。

项目上想用来做分时处理程序都不知道用哪个?

就用通用的定时器 timer1

一起看下时钟树,如下图所示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdrdW5oZW5yeQ==,size_16,color_FFFFFF,t_70GD32时钟树部分硬件展示

TIMER1的时钟是CK_TIMER1,要提供CK_TIMER1需要TIMER1 enable并且需要提供具体的时钟

具体的时钟

if(APB1 prescale = 1 ) x 1 else x 2

我们的CK_SYS时钟(系统时钟)经过Prescaler之后最大频率是CK_AHB(120MHz)

然后经过预分频,APB1频率最大到60MHz,如果预分频系数是1的话,则提供到TIMER的频率是x2。

也就是60*2 = 120MHz

所以TIMER1的时钟就用基于120MHz去分频

我想每200ms 获取一次timer1的中断。改怎么办?

有两个参数可以一起去实现这个功能。

1个事TIMER的prescale 可以先把这个120MHz分频,比如我分频为1MHz,那么prescale就是120,不过这里timer_initpara.prescaler不能设置为120,要设置为119.

因为具体的计算方式是120MHz/(prescaler+1)

这样拿到了1MHz的clock.那获取每200ms的中断再要做什么呢?

这里有reload 参数timer_initpara.period ,官方成为“TIMER counter auto reload register”

这个reload参数意思是:当计数计到period参数的时候就做一次更新,从0开始重新计算,中断就产生一次。

前面1MHz 意思是1s 可以计数1000 000次。也就是1ms 可以计数1000次,我需要200ms更新一次,那就说我需要计数 200 * 1000,所以reload就是200 * 1000 = 200000

timer_initpara.period 就是写为200000

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3246

    浏览量

    114693
  • 时钟树
    +关注

    关注

    0

    文章

    54

    浏览量

    10741
收藏 人收藏

    评论

    相关推荐

    GD32 MCU入门教程】GD32 MCU GPIO 结构与使用注意事项

    本文是专门为基于GD32 MCU开发的工程设计人员提供,主要介绍了GPIO的功能配置、内部结构以及在不同场景使用时的注意事项,旨在帮助GD32 MCU开发者优化对通用型输入输出端口(GPIO)的使用,正确快速的使用GD32 MC
    的头像 发表于 09-07 10:34 706次阅读
    【<b class='flag-5'>GD32</b> MCU入门教程】<b class='flag-5'>GD32</b> MCU GPIO 结构与使用注意事项

    GD32 MCU 入门教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的头像 发表于 08-25 09:24 563次阅读
    【<b class='flag-5'>GD32</b> MCU 入门教程】<b class='flag-5'>GD32</b> MCU FPU 使用方法

    GD32如何替换STM32

    GD32替换Stm32注意事项
    发表于 08-23 11:31 4次下载

    GD32 MCU 入门教程】GD32 MCU 常见外设介绍(12)FMC 模块介绍

    闪存控制(FMC),提供了片上闪存需要的所有功能。FMC 也提供了页擦除,整片擦除,以及32 位整字或 16 位半字编程闪存等操作。 GD32 MCU 支持不同类型编程的具体说明如下表 GD32 MCU 不同系列编程区别所示。
    的头像 发表于 08-21 09:56 1078次阅读
    <b class='flag-5'>GD32</b> MCU 入门教程】<b class='flag-5'>GD32</b> MCU 常见外设介绍(12)FMC 模块介绍

    GD32L233移植FreeRTOS,用定时器2做延时函数在线调试时无法进入TIMER2的中断服务函数,怎么解决?

    GD32L233移植FreeRTOS,用定时器2做延时函数在线调试发现无法进入TIMER2的中断服务函数。
    发表于 07-26 06:39

    GD32E230C8T6高级定时器timer0无法正常输出PWM波形的原因?

    原本想用高级定时器的中央对齐计数模式来输出SPWM波,但是TIMER0的CH0,CH1等口,都无法正常输出PWM波形,换成普通定时器就可以了,STM32里对于高级定时器输出PWM波形,
    发表于 07-26 06:34

    鸿蒙开发系统基础能力:Timer定时器

    设置一个定时器,该定时器定时器到期后执行一个函数。
    的头像 发表于 06-28 11:33 981次阅读
    鸿蒙开发系统基础能力:<b class='flag-5'>Timer</b><b class='flag-5'>定时器</b>

    如何排查GD32 MCU复位是由哪个复位源导致的?

    上期为大家讲解GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位、内核软复位、窗口看门狗复位等,在一个GD32系统中,如果莫名其妙产生了MCU复位,如何排查具体是由哪个复位源导致的呢?
    的头像 发表于 02-03 09:46 1702次阅读
    如何排查<b class='flag-5'>GD32</b> MCU复位是由哪个复位源导致的?

    不同型号的GD32 MCU如何区分?

    大家是否碰到过以下应用场景:同一套软件代码希望跑在不同型号的GD32 MCU中,但有些地方需要根据MCU型号进行调整?或者上位机或其他MCU与GD32 MCU通信时需要知道对应的MCU型号是哪个?
    的头像 发表于 01-27 09:32 988次阅读
    不同型号的<b class='flag-5'>GD32</b> MCU如何区分?

    GD32 Timer定时器周期时间计算公式#GD32 #单片机 #定时器

    单片机mcu
    聚沃科技
    发布于 :2024年01月23日 09:37:24

    GD32 Timer定时器周期时间计算公式

    有小伙伴反馈GD32 Timer定时器的周期时间不知如何计算,今天就来安排。
    的头像 发表于 01-22 09:53 2664次阅读
    <b class='flag-5'>GD32</b> <b class='flag-5'>Timer</b><b class='flag-5'>定时器</b>周期时间计算公式

    GD32 串口接受异常的几个原因

    前面我们介绍过GD32 485发送时出现异常的最常见原因,有小伙伴反馈想要知道GD32 串口接受异常的可能原因,今天我们就来安排。
    的头像 发表于 01-18 09:57 4203次阅读
    <b class='flag-5'>GD32</b> 串口接受异常的几个原因

    GD32 MCU的选项字节是什么?

    GD32 MCU的选项字节是什么,有什么功能呢?选项字节被误篡改如何回复?
    的头像 发表于 01-17 09:42 1347次阅读
    <b class='flag-5'>GD32</b> MCU的选项字节是什么?

    你了解GD32 MCU的命名规则吗

    下面为大家介绍GD32 MCU的通用命名规则,以GD32F303ZGT6为例,其中,GD32代表GD32 MCU,F代表通用系列产品类型,303代表303产品子系列,Z代表144引脚数
    的头像 发表于 01-13 09:38 3606次阅读
    你了解<b class='flag-5'>GD32</b> MCU的命名规则吗

    AWTK 开源串口屏开发(6) - 定时器的用法

    中,可以给每个控件(包括窗口)创建一个定时器定时器到点后触发v-on:timer事件。在AWTK串口屏中,提供了6个定时器相关函数:start_t
    的头像 发表于 01-13 08:24 563次阅读
    AWTK 开源串口屏开发(6) - <b class='flag-5'>定时器</b>的用法