stm32定时器与定时器中断

2023-11-12

1.定时器种类

在这里插入图片描述
注:主要使用通用定时器

2.通用计时器特点描述

在这里插入图片描述
说明:四个通道互不影响

3.定时器中断触发条件

在这里插入图片描述

4.定时器计数模式

分为向上,向下,向上向下模式
在这里插入图片描述
在这里插入图片描述

5.通用定时器作用用途

测量输入输出波长度等
说明:每个定时器完全独立没有共享内存

6.工作过程

红色为重点关注
红色重点关注
在这里插入图片描述
时钟来源:
A.内部时钟APB1分频器ckl_int(主要)
B.其他通用定时器 外部引脚2,3,4
C.其他定时器
D.外部通道(略)
时基单元(时间控制单元) :
①预分频(除法)
②计数器时钟
③自动重装载值
输入部分:
①输入引脚
②边沿检测
输出部分 :
A 输出比较寄存器
B周期—重装载值
C占空比—比较值

时钟计算方法
在这里插入图片描述

7.定时器相关寄存器与固件库结构体

在这里插入图片描述
在这里插入图片描述
注:真正使用的只有前3个成员

8.定时器相关库函数

在这里插入图片描述

9.配置步骤

在这里插入图片描述
1.打开定时器时钟
2.中断组选择
3.定时器结构体配置与初始化
4.配置定时器与中断线联系
5.定时器中断结构体配置与初始化
6.开启定时器
在这里插入图片描述
配置俩个:重装载值,分频系数, tclk系统时钟不用

附上代码
.c文件

#include "stm32f10x.h"
#include "tim.h"

void tim_config(void)
{
	TIM_TimeBaseInitTypeDef TIMinitStructure;//定时器结构体变量名
  NVIC_InitTypeDef NVICinitStructure;//定时器中断结构体变量名
  //1.打开定时器时钟	
	

	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
	//2.中断组选择
	NVIC_PriorityGroupConfig( NVIC_PriorityGroup_1);



//3.定时器结构体的配置
	
	TIMinitStructure.TIM_Prescaler			=7200-1;//分配器计数值
	TIMinitStructure.TIM_CounterMode		=TIM_CounterMode_Up;//选择计数模式,选择向上计数模式
	TIMinitStructure.TIM_Period					=10000-1;//配置自动重装载值
	TIMinitStructure.TIM_ClockDivision	=TIM_CKD_DIV1;//选择分频模式,选择不分频模式
	
//4.定时器初始化
	TIM_TimeBaseInit(TIM2, &TIMinitStructure);//用通用定时器2

//5.配置定时器与中断线联系创建
  TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);



//6.定时器中断结构体配置
	NVICinitStructure.NVIC_IRQChannel										=TIM2_IRQn;//中断通道
	NVICinitStructure.NVIC_IRQChannelPreemptionPriority	=1;
	NVICinitStructure.NVIC_IRQChannelCmd								=ENABLE;
	NVICinitStructure.NVIC_IRQChannelSubPriority				=1;

//7.定时器中断初始化
NVIC_Init(&NVICinitStructure);
//8.开启定时器
	TIM_Cmd(TIM2,ENABLE);
}


中断服务函数

void TIM2_IRQHandler ()//定时器中断服务函数
{
	
	static uint16_t temp=0;
	if(TIM_GetITStatus(TIM2,TIM_IT_Update)!= RESET)//判断是否发生中断
	{
		if((temp++ )%2==1)//奇数亮偶数灭,进入中断一次亮灭,一秒拉高一秒拉低
		{
			GPIO_ResetBits(GPIOC,GPIO_Pin_13);//拉低电平
		
		}
		else
		{
			GPIO_SetBits(GPIOC,GPIO_Pin_13);//拉高电平
		
		}
	}
	
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stm32定时器与定时器中断 的相关文章

  • 压力测试-JMeter安装、入门、结果分析

    目录 1 写在前面 2 常用压测工具 3 压测机环境准备 JMeter部署 3 1 JMeter下载安装 启动 配置 3 2 入门案例 3 2 3 压测结果解释 3 2 4 线程属性参数原理 1 写在前面 等到服务上线后 在业务压力的冲击下

随机推荐

  • 我的毕业论文

    摘要 信息时代的到来 给电子商务带来了无限活力 电子商务网站已经显示出欣欣向荣的繁荣景象 基于这一历史背景 本论文介绍了基于J2EE标准规范 并采用其推荐的实现技术JSP java server pages Servlet等对一个典型电子商
  • STM32串口中断ORE问题记录

    首先感谢 今天也迟到 提供的思路 原文博客如下 https blog csdn net qq 34401994 article details 76359581 背景 STM32F030芯片 485串口使用MDA 中断方式收发数据 问题 串
  • Selenium Python 框架之 BasePage页面封装写法

    coding utf 8 Time 2019 10 25 Author carl dj from public common log import Logger from config import globalparam from sel
  • python和java哪个更值得学?

    在编程界经常会引发一个讨论 就是python和Java哪个更值得学 Java语言具有跨平台的特性 在应用范围上有许多选择的余地 而Python在这几年的火热程度丝毫没有减退 个人观点 看学习的目的 如果想在互联网公司找个稳定的工作那就学习J
  • Spring Boot的创建和使用

    目录 什么是Spring Boot Spring Boot的优点 Spring Boot项目的创建 通过idea创建Spring Boot项目 1 安装插件 2 new project 3 选择Spring Boot项目 选择合适的jdk版
  • 容易让单片机程序跑飞的原因

    1 意外中断 是否打开了某个中断 但是没有响应和清除中端标志 导致程序一直进入中断 造成死机假象 2 中断变量处理不妥 若定义某些会在中断中修改的全局变量 这时要注意两个问题 首先为了防止编译器优化中断变量 要在这些变量定义时前加volat
  • 面试题 16.16. 部分排序

    题目链接 https leetcode cn com problems sub sort lcci 思路如下 从左往右看 正序应该是逐渐变大 最右逆序对所在的位置就是我们要求的右边界 从右往左看 正序应该是逐渐变小 最左逆序对所在的位置就是
  • openGauss学习笔记-38 openGauss 高级数据管理-游标

    文章目录 openGauss学习笔记 38 openGauss 高级数据管理 游标 38 1 语法格式 38 2 参数说明 38 3 示例 openGauss学习笔记 38 openGauss 高级数据管理 游标 为了处理SQL语句 存储过
  • 寒假训练 第四节 数据结构基础 总结

    并查集 定义 并查集是一种树型的数据结构 用于处理一些不相交集合的合并及查询问题 并查集的思想是用一个数组表示了整片森林 parent 树的根节点唯一标识了一个集合 我们只要找到了某个元素的的树根 就能确定它在哪个集合里 操作 合并 把两个
  • Printk打印内核日志

    一 背景 Linux 内核中提供了内核日志打印的工具printk 它的使用方式C语言中的printf是类似的 接下来我们介绍一下printk的使用方式 本文以打印Binder中的日志为例 进行演示 printk的方法声明和日志级别 bind
  • Python 环境在anaconda中下载并安装NLTK说明

    在spyder的Ipython python中的shell 中 即右下角内输入以下两条命令 gt gt gt import nltk gt gt gt nltk download
  • fbx-python安装

    下载 官网 下载 链接 百度云 提取码 gapa 安装 安装fbx20202 fbxpythonsdk win exe 一路next 然后FBX Python Bindings zip解压到C Program Files Autodesk
  • java用枚举代替int常量,让你的系统更安全--用枚举enum替代int常量

    做应用系统时 我们往往假设用户是小白 那么为了保证系统的正常 我们往往会对用户的参数做限制 并且前后端都要对用户的参数做验证 那我们在设计的时候是否可以提前预防这种问题呢 其中的一种方式就是 用枚举enum替代int常量 枚举的好处 做应用
  • sql语句去重distinct、统计(count、sum)

    1 查询数组并去重 用distinct 函数 select distinct 字段名 from 表名 2 count 和 sum 1 count 函数是用于统计数据的条数 select count as count from A where
  • 备战2022蓝桥杯每日一题(1)

    简单的a b 题目描述 收获 scanf函数的返回值 scanf 函数返回值分为3种 1 返回正整数 表示正确输入参数的个数 2 返回整数0 表示用户的输入不匹配 无法正确输入任何值 3 返回 1 表示输入流已经结束 在Windows下 用
  • Android 不自动弹出软键盘

    进入新 Activity界面 想阻止软键盘自动弹出 只要在 AndroidManifest xml 中对应的Activity下设置 android windowSoftInputMode adjustUnspecified stateHid
  • J-A-V-A的知识积累(一)

    1 hashMap的深入分析 https blog csdn net lianhuazy167 article details 66967698 红黑树 https blog csdn net cyp331203 article detai
  • python读写excel时间的处理

    用python读写excel 当读写内容为时间时 会发现时间变成了浮点数 这篇文章记录了对于这种情况的处理 将时间写入excel dateFormat xlwt XFStyle dateFormat num format str yyyy
  • 复试英语面试常见问题整理自用,考研复试英语问题汇总

    更多复试资料获取方式在文末 个人整理 完全免费 更多复试资料获取方式在文末 个人整理 完全免费 Why did you choose our university Firstly it provides high quality compu
  • stm32定时器与定时器中断

    1 定时器种类 注 主要使用通用定时器 2 通用计时器特点描述 说明 四个通道互不影响 3 定时器中断触发条件 4 定时器计数模式 分为向上 向下 向上向下模式 5 通用定时器作用用途 测量输入输出波长度等 说明 每个定时器完全独立没有共享