首页 > 其他分享 >STM32标准库通用定时器计数

STM32标准库通用定时器计数

时间:2024-03-06 21:24:14浏览次数:27  
标签:TIM2 NVIC 定时器 CounterMode TIM STM32 计数

STM32标准库通用定时器计数

1. 定时器初始化

void TIM2_Init()
{
	TIM_TimeBaseInitTypeDef TIM2_Initstructure;                 //定义结构体
	NVIC_InitTypeDef NVIC_InitStructure;                        //定义结构体
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);         //使能定时器2时钟
	TIM2_Initstructure.TIM_Period = 1000;                       //设置计数器自动重装值
	TIM2_Initstructure.TIM_Prescaler = 72 - 1;                  //设置预分频值
	TIM2_Initstructure.TIM_ClockDivision = TIM_CKD_DIV1;        //设置时钟分割
	TIM2_Initstructure.TIM_CounterMode = TIM_CounterMode_Up;    //设置计数器模式
	TIM_TimeBaseInit(TIM2,&TIM2_Initstructure);                 //初始化定时器2
	
	TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);                    //使能定时器2更新中断
	
	NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;             //定时器2中断通道
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;   //设置中断优先级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;          //设置中断子优先级
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;             //使能中断通道
	
	NVIC_Init(&NVIC_InitStructure);                             //初始化NVIC
	
	TIM_Cmd(TIM2,ENABLE);                                       //使能定时器2
}

其中TIM_TimeBaseInitTypeDef结构体配置比起基本定时器多了2个选项。基本定时器只需要配置TIM_Period和TIM_Prescaler的值便可以使用。

  • TIM_ClockDivision:设置定时器时钟分割.

    • TIM_CKD_DIV1:定时器时钟 = 输入频率。
    • TIM_CKD_DIV2:定时器时钟 = 输入频率/2。
    • TIM_CKD_DIV4:定时器时钟 = 输入频率/4。
  • TIM_CounterMode:设置计数器模式。

    • TIM_CounterMode_Up:向上计数。
    • TIM_CounterMode_Down:向下计数。
    • TIM_CounterMode_CenterAligned1:中心对齐向下计数。
    • TIM_CounterMode_CenterAligned2:中心对齐向上计数。
    • TIM_CounterMode_CenterAligned3:中心对齐双向计数。

2.定时器中断服务函数

void TIM2_IRQHandler()                                  //定时器2中断服务函数
{
	if(TIM_GetITStatus(TIM2,TIM_IT_Update) != RESET)    //定时器2中断发生
	{
		TIM_ClearITPendingBit(TIM2,TIM_IT_Update);      //清除中断标志位
		led_turn();                                     //调用led翻转函数
	}
}

标签:TIM2,NVIC,定时器,CounterMode,TIM,STM32,计数
From: https://www.cnblogs.com/tqht7h/p/18057606

相关文章

  • 算法随笔——图论:无向图三/四元环计数
    参考:https://oi-wiki.org/graph/rings-count/题目链接:P1989无向图四元环计数求四元环步骤:建双向边。给每条边定向,由度数小的点指向大的,若度数一样则看编号大小。此时只有这几种情况:都可以归类为:枚举起始点A,枚举A<-->B(双向边),枚举B-->C,让C点被访问次数\(cnt\)......
  • 题解:卡农(组合计数+DP)
    题面题目链接简化一下,有\(3\)个限制:不能是空集。每个元素出现的次数必须为偶数。不能出现两个相同的集。思路首先不用状压,但是需要\(DP\),因为\(n\)范围过大用状压内存放不下,不然本来状压很好用的。考虑数学方法\(+DP\)。限制\(1\)因为不能有空集,所以可选......
  • STM32标准库基本定时器
    STM32标准库基本定时器1.定时器初始化voidTIM6_Init()//定时器6初始化{ TIM_TimeBaseInitTypeDefTIM_TimBaseStructure;//定义定时器结构体 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);//使能定时器6的时钟 TI......
  • NOI 1.7.01 统计数字字符个数
    总时间限制:1000ms内存限制:65536kB描述输入一行字符,统计出其中数字字符的个数。输入一行字符串,总长度不超过255。输出输出为1行,输出字符串里面数字字符的个数。样例输入PekingUniversityissetupat1898.样例输出4原题链接:http://noi.openjudge.cn/ch0107/01/......
  • STM32标准库RTC时钟
    STM32标准库RTC时钟1.RTC时钟配置1.1头文件引用需要引用以下头文件或打开以下模块:#include"stm32f10x_rcc.h"//包含RCC时钟配置头文件#include"stm32f10x_pwr.h"//包含PWR时钟配置头文件#include"stm32f10x_rtc.h"//包含RTC时钟配置头文件#inclu......
  • 计数系统
    十进制数十进制数,就是以10为基数的计数系统,数字的书写方式是基于10的幂数。例如,2398就是21000+3100+910+81,其中,计数系统的第一位幂数一定是0次方,向左依次递增,因为这种数字表示法是基于10的幂,所以将它称作基数为10的表示法或十进制表示法。可以用任何数作基数。八进制数八......
  • linux基于VSCODE搭建stm32开发环境
    1.安装VSCODEhttps://code.visualstudio.com/2.安装系统相关编译软件sudoaptinstallbuild-essentialgdbsudoaptinstallgcc-arm-none-eabisudoaptinstallmakecmakesudoaptinstallopenocd3.安装VSCODE插件cortex-debug  4 安装stlink驱动下载地址......
  • STM32的中断刨析
    STM32中断刨析一直以来,学习了stm32和freertos但在思考rtos的任务调度时,涉及到stm32的中断就感觉糊里糊涂。本篇记录刨析stm32的中断系统。中断和异常在STM32微控制器中,中断(Interrupt)和异常(Exception)是两种处理器响应外部事件的机制。它们的区别和联系如下:区别:中......
  • linux基于STM32CUBE IDE搭建stm32开发环境
    1.安装STM32CUBEMX安装地址https://www.st.com/zh/development-tools/stm32cubemx.html2.安装STM32CUBEIDE安装地址https://www.st.com/zh/development-tools/stm32cubeide.html3.安装烧写相关软件3.1安装openocd方法1:命令安装(不推荐,因为默认安装的是0.10.0,不支持......
  • linux基于clion搭建stm32开发环境
    1.安装开发工具1.1安装stm32cubemx下载地址https://www.st.com/zh/development-tools/stm32cubemx.html1.2安装clion方法1:直接下载clion,下载地址https://www.jetbrains.com/clion/download方法2:通过JetBrainsToolBox下载,JetBrainsToolBox下载地址https://www.j......