首页 > 其他分享 >STM32标准库基本定时器

STM32标准库基本定时器

时间:2024-03-04 21:46:35浏览次数:30  
标签:NVIC 定时器 TIM6 TIM 中断 STM32 标准 InitStructure

STM32标准库基本定时器

1.定时器初始化

void TIM6_Init()                                        //定时器6初始化
{
	TIM_TimeBaseInitTypeDef TIM_TimBaseStructure;       //定义定时器结构体
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); //使能定时器6的时钟
	TIM_TimBaseStructure.TIM_Period = 1000;             //定时器6的周期为1000
	TIM_TimBaseStructure.TIM_Prescaler = 71;            //定时器6的预分频为71
	TIM_TimeBaseInit(TIM6,&TIM_TimBaseStructure);       //初始化定时器6
	TIM_ClearFlag(TIM6,TIM_FLAG_Update);                //清除定时器6的更新标志
	TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);            //使能定时器6的更新中断
	TIM_Cmd(TIM6,ENABLE);                               //使能定时器6
	NVIC_InitTypeDef NVIC_InitStructure;                //定义NVIC结构体
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);     //设置NVIC的优先级分组为0
	NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;     //设置定时器6的中断通道为TIM6_IRQn
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;   //设置定时器6的中断优先级为1
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //设置定时器6的中断子优先级为0
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     //使能定时器6的中断通道
	NVIC_Init(&NVIC_InitStructure);                     //初始化NVIC
}

STM32的定时器中断频率计算公式为:主频/(TIM_Period * (TIM_Prescaler-1)).

2.定时器中断处理函数

void TIM6_IRQHandler()                                  //定时器6的中断处理函数
{
	if(TIM_GetITStatus(TIM6,TIM_IT_Update) != RESET)    //判断定时器6的更新中断是否发生
	{
		TIM_ClearITPendingBit(TIM6,TIM_IT_Update);      //清除定时器6的更新中断标志
	}
}

3. 总结

STM32的基本定时器比较简单,基本只有定时作用。

标签:NVIC,定时器,TIM6,TIM,中断,STM32,标准,InitStructure
From: https://www.cnblogs.com/tqht7h/p/18052777

相关文章

  • C++ 简易STL 教程 与 C++ 标准库
    C++STL(标准模板库)是一套功能强大的C++模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++标准模板库的核心包括以下三个组件:组件描述容器(Containers)容器是用来管理某一类对象的集合。C++提供了各种不......
  • STM32标准库RTC时钟
    STM32标准库RTC时钟1.RTC时钟配置1.1头文件引用需要引用以下头文件或打开以下模块:#include"stm32f10x_rcc.h"//包含RCC时钟配置头文件#include"stm32f10x_pwr.h"//包含PWR时钟配置头文件#include"stm32f10x_rtc.h"//包含RTC时钟配置头文件#inclu......
  • Linux shell 标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)介绍
    Linux系统shell使用文件描述符0与进程的标准输入(一般是键盘)相关联,文件描述符1与标准输出(一般是显示器)相关联,文件描述符2与标准出错输出(一般是显示器)相关联。1、可以将/dev/null看作"黑洞".它非常等价于一个只写文件.所有写入它的内容都会永远丢失.而尝试从它那儿读取内容则什......
  • 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,不支持......
  • PDF标准详解(二)——PDF 对象
    上一篇文章我们介绍了一个PDF文档应该包含的最基本的结构,并且手写了一个最简单的“HelloWorld”的PDF文档。后面我们介绍新的PDF标准给出示例时将以这个文档为基础,而不再给出完整的文档示例,小伙伴想自己测试可以根据上一节的文档来进行配置。对象上一节我们看到一个个奇奇怪......
  • 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......
  • 并发编程之定时器
    定时器定时器,指定n秒后执行某操作简易版:fromthreadingimportTimerdeftask(name):print('hello%s'%name)t=Timer(5,task,args=('xiao',))t.start()#helloxiao应用版:##验证码定时器fromthreadingimportTimerimportrandomclassCode:......
  • 一文搞懂 Go 1.21 的日志标准库 - slog
    一文搞懂Go1.21的日志标准库-slog原创 rubys_ awk 2024-01-3120:20 广东 1人听过在过去多年里,我们在Go中写日志的时候,通常都是使用 Zerolog 或者 Zap 这两个包。在本文中,我们将重点探讨Go最近引入的 log/slog 包,该包旨在将高性能、结构化和分级日志......