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

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

3天内不再提示

STM32的通用定时器

汽车电子技术 来源:玩转单片机 作者: Julian 2023-02-10 14:47 次阅读

STM32F1 的定时器非常多,由 2 个基本定时器(TIM6、TIM7)、4 个通用定时器(TIM2-TIM5)和 2 个高级定时器(TIM1、TIM8)组成。

1、定时器有哪些,以及对应有什么功能

(1)基本定时器:

功能最为简单,类似于 51 单片机内定时器。

(2)通用定时器:

是在基本定时器的基础上扩展而来,增加了输入捕获(可以测量输入信号的脉宽)与输出比较(产生输出波形)等功能。

(3)高级定时器:

是在通用定时器基础上扩展而来,增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能主要针对工业电机控制方面。

2、通用定时器配置

#include "stm32f10x.h"


uint8_t time_flag = 0;


void LED_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;        //选择你要设置的IO口
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置推挽输出模式
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//设置传输速率
  GPIO_Init(GPIOC,&GPIO_InitStructure);          /* 初始化GPIO */

  GPIO_SetBits(GPIOC,GPIO_Pin_0);    //将LED端口拉高,熄灭所有LED
}


void TIM4_Init(u16 per,u16 psc)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);  //使能TIM4时钟

  TIM_TimeBaseInitStructure.TIM_Period=per;                     //自动装载值
  TIM_TimeBaseInitStructure.TIM_Prescaler=psc;                  //分频系数
  TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;     //时钟分频
  TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //设置向上计数模式
  TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);

  TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);   //开启定时器中断
  TIM_ClearITPendingBit(TIM4,TIM_IT_Update);

  NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;        //定时器中断通道
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//抢占优先级
  NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;      //子优先级
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;        //IRQ通道使能
  NVIC_Init(&NVIC_InitStructure);  

  TIM_Cmd(TIM4,ENABLE); //使能定时器  
}
// TIM4中断函数
void TIM4_IRQHandler(void)
{
  if(TIM_GetITStatus(TIM4,TIM_IT_Update))
  {
    if(time_flag){
      time_flag = 0x00;
    }
    else{
      time_flag = 0xff;
    }
  }
  TIM_ClearITPendingBit(TIM4,TIM_IT_Update);  
}


int main( void )
{
  LED_Init();
  TIM4_Init(1000,36000-1);  //定时500ms
  while(1)
  {
    if( time_flag ){
      GPIO_ResetBits(GPIOC,GPIO_Pin_0);
    }
    else{
      GPIO_SetBits(GPIOC,GPIO_Pin_0);
    }
  }
}

3、测试验证程序,下载到板子会看到LED闪烁,程序正常。

--END--

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

    关注

    23

    文章

    3147

    浏览量

    112036
  • stm32f1
    +关注

    关注

    1

    文章

    53

    浏览量

    12036
收藏 人收藏

    评论

    相关推荐

    STM32-通用定时器

    1.1.1 STM32F407定时器的介绍一共有14个定时器1. 基本定时器(2个):定时2. 通用
    发表于 03-03 15:48

    STM32通用定时器简介

    以下描述适用于整个STM32FM10xxx系列。本文依据《STM32中文参考手册_V10》STM32通用定时器简介
    发表于 08-11 07:02

    STM32通用定时器和高级定时器

    STM32通用定时器和高级定时器除了支持单向的向上或向下计数模式外,还支持中心对齐计数模式,即一个计数周期内分别由向上计数和向下计数两个过程组成。在基于计数
    发表于 08-11 08:51

    STM32通用定时器有哪些

    STM32F1xx官方资料:《STM32中文参考手册V10》-第14章通用定时器 STM32定时器
    发表于 08-13 08:24

    STM32通用定时器和高级定时器功能

    比较之后,并依据相应的输出模式从而实现各类输出。如PWM输出、电平翻转、单脉冲模式、强制输出等。一般来说,STM32通用定时器和高级定时器都具有比较输出功能,不同的
    发表于 08-18 07:15

    STM32 通用定时器原理介绍 精选资料分享

    一、STM32 通用定时器简介STM32F1 的通用定时器是一个通过可编程预分频
    发表于 08-19 09:08

    STM32通用定时器框图及功能

    STM32通用定时器有四个,分别是TIM2, TIM3,TIM4,TIM5,有以下功能:通用定时器的框图如下:从图中可以看出,
    发表于 08-19 08:49

    STM32通用定时器是怎样进行工作的

    STM32定时器有哪几类呢?STM32通用定时器的功能特点有哪些?STM32
    发表于 11-23 06:24

    STM32通用定时器有何特点及其应用呢

    STM32F103ZET6中的定时器之间有何区别呢?STM32通用定时器有何特点及其应用呢?
    发表于 11-23 07:53

    STM32通用定时器之间有什么区别?

    STM32通用定时器之间有什么区别?
    发表于 11-24 06:13

    STM32通用定时器有那几个?具有什么功能?

    STM32通用定时器有那几个?具有什么功能?
    发表于 11-24 07:49

    Stm32通用定时器相关内容复习

    如何去配置通用定时器的工作模式和管脚复用呢?Stm32通用定时器有哪几种功能?
    发表于 11-24 07:51

    STM32-通用定时器基本定时功能资料下载

    电子发烧友网为你提供STM32-通用定时器基本定时功能资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮
    发表于 04-12 08:44 4次下载
    <b class='flag-5'>STM32</b>-<b class='flag-5'>通用</b><b class='flag-5'>定时器</b>基本<b class='flag-5'>定时</b>功能资料下载

    [STM32]通用定时器的使用

    STM32通用定时器定时、输出PWM功能的使用本次还是使用发光二极管来验证定时器的使用目录STM32
    发表于 11-22 19:06 24次下载
    [<b class='flag-5'>STM32</b>]<b class='flag-5'>通用</b><b class='flag-5'>定时器</b>的使用

    STM32-通用定时器-PWM输出

    1 通用定时器PWM概述1.1STM32定时器输出通道引脚这里以TIM3为例来讲解。STM32通用
    发表于 11-26 15:36 22次下载
    <b class='flag-5'>STM32</b>-<b class='flag-5'>通用</b><b class='flag-5'>定时器</b>-PWM输出