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

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

3天内不再提示

浅谈stm32定时器应用中的2个疑问

茶话MCU 来源:cc 2019-01-28 10:14 次阅读

疑问1:在使用STM32通用或高级定时器的比较输出时,如果采用中心对齐计数模式做PWM输出,并使用比较事件作为ADC的触发启动。那么,在一个完整的计数周期内,可能发生2次比较事件,想知道如何确定使用哪次比较事件进行触发呢?换句话说,是否可以对比较事件进行选择配置?答案是肯定的。

下图是采样中央对齐计数模式,PWM mode 1的PWM输出情形。ARR=8,CCR=4.

在上面的应用情况下,比较事件可能发生在CNT与CCR第一次匹配时,即发生在向上计数阶段,也可能发生在CNT与CCR第二次匹配时,即发生在向下计数阶段。到底发生在哪个阶段,取决于相关控制寄存器的配置,这里跟寄存器TIMx_CR1中CMS控制位有关。

从该寄存器CMS控制位的描述不难看出,在计数器使用中心对齐计数模式做比较输出时,比较事件的发生是可以选择的。可以仅仅发生在向上计数阶段或向下计数阶段,也可以配置为上下两个计数阶段都产生比较事件。这点可以结合上面图形的箭头提示加以认知和理解。【CcxIF为相应通道的比较事件标志位】

疑问2:有人反馈,在定时器的溢出中断里打断点时,发现更新中断标志无法被清零,可用户在中断服务程序中实实在在的有对更新事件标志实施清零操作。

其实,并不是没法对更新事件标志清零,这只是种误解。原因是尽管此时客户在清零操作后的代码处打上了断点,但由于定时器并没有停止计数,如果再加上溢出周期较短。程序刚做完清除操作并停止在定时器中断服务程序断点后,由于定时器还在持续计数而产生新的溢出更新事件,令更新事件标志再次被置位,这样给人以更新事件标志没法被清零的错觉。

对于调试状态下定时器的计数动作是可以软件配置选择的,即当程序运行到断点后,定时器是继续计数还是暂停下来可用户软件配置决定,【这里的定时器不仅仅指常规定时器,还包括看门狗】。

具体到上面案例,如果希望在断点处计数器暂时不要计数,我们可以软件上做相应配置。这里涉及到寄存器DBGMCU_CR,让相关定时器在调试状态遇到断点时暂停计数。

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

    关注

    2270

    文章

    10900

    浏览量

    355899
  • 定时器
    +关注

    关注

    23

    文章

    3248

    浏览量

    114769

原文标题:stm32定时器应用中的2个疑问

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32单片机定时器介绍

    其重要性。STM32F103 系列的单片机一共有 11 定时器,其中 2 高级定时器, 4
    发表于 11-11 17:17 22次下载

    STM32-基本定时器TIM6-TIM7基本定时功能

     STM32一共有11定时器,其中2高级控制定时器
    发表于 11-27 18:55 1.2w次阅读
    <b class='flag-5'>STM32</b>-基本<b class='flag-5'>定时器</b>TIM6-TIM7基本<b class='flag-5'>定时</b>功能

    详解STM32定时器的时钟源

    STM32有多达8定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB
    的头像 发表于 09-03 17:14 2.6w次阅读

    基于STM32F103系列单片机的11定时器解析

    STM32F103系列的单片机一共有11定时器,其中: 2高级定时器 4
    发表于 10-23 15:54 7205次阅读
    基于<b class='flag-5'>STM32</b>F103系列单片机的11<b class='flag-5'>个</b><b class='flag-5'>定时器</b>解析

    [STM32]通用定时器的使用

    什么是PWM2.通过改变脉宽来改变亮灭程度总结前言首先还是要了解STM32库函数中提供的使用定时器所需要配置的结构体成员的含义typedef struct{ uint16_t TIM_Prescaler; /*
    发表于 11-22 19:06 24次下载
    [<b class='flag-5'>STM32</b>]通用<b class='flag-5'>定时器</b>的使用

    STM32定时器-基本定时器

    目录定时器分类基本定时器功能框图讲解基本定时器功能时钟源计数时钟计数自动重装载寄存
    发表于 11-23 18:21 31次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>-基本<b class='flag-5'>定时器</b>

    STM32——高级定时器、通用定时器、基本定时器的区别

    STM32——高级定时器、通用定时器、基本定时器的区别
    发表于 11-26 15:21 110次下载
    <b class='flag-5'>STM32</b>——高级<b class='flag-5'>定时器</b>、通用<b class='flag-5'>定时器</b>、基本<b class='flag-5'>定时器</b>的区别

    STM32-通用定时器-定时器中断

    1STM32定时器STM32F103ZET6一共有8定时器,其中分别为:高级定时器(TIM1
    发表于 11-26 15:36 16次下载
    <b class='flag-5'>STM32</b>-通用<b class='flag-5'>定时器</b>-<b class='flag-5'>定时器</b>中断

    STM32---定时器知多少

    14,15,16章节,里面对定时器的知识有详细的介绍。STM32F1系列的开发板一共有8定时器,按照功能的不同可以分为:高级定时器(TIM
    发表于 11-30 14:36 19次下载
    <b class='flag-5'>STM32</b>---<b class='flag-5'>定时器</b>知多少

    STM32定时器学习---基本定时器

    STM32F1系列的产品,除了互联网产品外,工作8,3种定时器,其中一种就是基本定时器。那么STM32单片机的基本
    发表于 12-02 14:06 28次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>学习---基本<b class='flag-5'>定时器</b>

    STM32定时器功能和用法详解

    1. STM32的Timer简介 STM32一共有11定时器,其中2
    发表于 02-11 15:04 29次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>功能和用法详解

    STM32定时器的分类及中断原理

    本文主要介绍常规定时器的TIM3,实现定时器中断的功能。STM32定时器的分类在其中一篇文章
    的头像 发表于 01-12 17:29 7299次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>定时器</b>的分类及中断原理

    STM32的通用定时器

    STM32F1 的定时器非常多,由 2 基本定时器(TIM6、TIM7)、4 通用
    的头像 发表于 02-10 14:47 3469次阅读

    STM32 TIM—基本定时器

    STM32F4xx系列控制有共有14TIM定时器。其中2高级控制
    的头像 发表于 07-22 17:05 5051次阅读
    <b class='flag-5'>STM32</b> TIM—基本<b class='flag-5'>定时器</b>

    STM32速成笔记(6)—定时器

    关于什么是定时器,简单来讲,就是是用来定时的。STM32F103ZET6有两基本定时器TIM6和TIM7,四
    的头像 发表于 10-24 09:41 4486次阅读
    <b class='flag-5'>STM32</b>速成笔记(6)—<b class='flag-5'>定时器</b>