【STM32学习(4)】STM32简述定时器
创始人
2024-03-20 16:31:32
0

一、什么是定时器

有计时和定时功能的仪器组件——对于芯片来说,定时器含有计时和定时功能,片内模块——TIM

二、STM32F4xx系列定时器分类

片内外设定时器(14个)

  • 高级定时器:TIM1、TIM8
  • 通用定时器:TIM2——TIM5 TIM9——TIM14
  • 基本定时器:TIM6、TIM7(基本的计时和定时功能)

内核定时器(1个)

  • 系统定时器(SysTisk 滴答定时器)

三、芯片内定时器的基本结构

在这里插入图片描述

四、基本定时器只有基本时基单元功能

1、时基单元

  • 计数器寄存器(TIMx_CNT):16位(0~65535)

在这里插入图片描述

  • 预分频寄存器(TIMx_PSC)

在这里插入图片描述

  • 自动重载寄存器(TIMx_ARR)
    你想定时多久,全靠设置这个ARR
    你设置ARR的值是脉冲的个数单位
    怎么设置ARR要自己算:
    如:根据已知提供CNT的脉冲频率f
    已知你要定时多久t
    ARR=t/(1/f)

2、例子
实现定时器6 TIM6,使其定时0.5s,让LED0翻转
①先使能TIM6时钟
RCC->APB1ENR
RCC_APB1PeriphClockCmd()
②先配置定时器TIM6模块
相关主要寄存器如下:
在这里插入图片描述
代码:
定时器6初始化

void TIM6_Init(void)
{TIM_TimeBaseInitTypeDef TIMInitStruct;NVIC_InitTypeDef NVIC_InitStructure;//用来初始化NVIC指定中断的结构体//1-使能时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);//2-初始化TIM6时基单元  ARR  PSCTIMInitStruct.TIM_Prescaler = 840-1;// 84Mhz/840 = 100Khz   10us/脉冲TIMInitStruct.TIM_Period    = 50000-1;//0.5s = 500ms  = 500000usTIM_TimeBaseInit(TIM6,&TIMInitStruct);//3-开启定时器TIm6 更新中断TIM6->DIER |= 0x01;//TIM_ITConfig()//4-将TIM6更新中断注册进NVICNVIC_InitStructure.NVIC_IRQChannel = TIM6_DAC_IRQn;//54号和 DAC共用NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);//5-开启定时器6计数器TIM6->CR1 |= 0x01;//TIM_Cmd()}

中断服务函数

void TIM6_DAC_IRQHandler(void)
{//因为这个TIM6中断号和中断函数和DAC共用//为了区分是谁触发中断进来的,可以在中断函数判断标志位//if(TIM_GetITStatus(TIM6,TIM_IT_Update);) == 1)if(TIM6->SR & 0x01){//如果能进来  表示上面SR第0位  更新中断标志位置位了GPIO_ToggleBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);TIM6->SR &= ~0x01;//写0清零中断标志位//TIM_ClearITPendingBit(TIM6,TIM_IT_Update);}
}

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...