CODE3:TIM定时器 - LI,Yi

news/2025/11/20 19:12:47/文章来源:https://www.cnblogs.com/LiYi-han/p/19248331

一、定时器定时中断

1.1 main.c

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"                  // Device header
#include "OLED.h"
#include "Timer.h"/* 声明全局变量 ------------------------------------------------------------------*/
uint16_t Num = 0;/* 主函数 ------------------------------------------------------------------*/
int main(void)
{/*-------- 初始化硬件 --------*/OLED_Init();		// OLED初始化Timer_Init();	// 定时器初始化/*-------- OLED显示 --------*/OLED_ShowString(1, 1, "Num: ");	// 5
//	OLED_ShowString(2, 1, "Count: "); // 7while(1){OLED_ShowNum(1, 8, Num, 5);
//		OLED_ShowNum(2, 8, TIM_GetCounter(TIM2), 5);}}/* 定时器中断函数 ------------------------------------------------------------------*/
void TIM2_IRQHandler(void)
{if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET){ // 检查更新中断标志位Num++;TIM_ClearITPendingBit(TIM2, TIM_IT_Update); // 清除更新中断标志位}
}

1.2 Timer.c

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"                  // Device headervoid Timer_Init(void)
{/*-------- 声明和初始化变量 --------*/TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;NVIC_InitTypeDef NVIC_InitStruct;TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; // 滤波时钟的分频配置TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数模式TIM_TimeBaseInitStruct.TIM_Period = 10000 - 1; // 自动重装值(相当于1s重装载1次)TIM_TimeBaseInitStruct.TIM_Prescaler = 7200 - 1; // 预分频值(当前f = 10,000Hz, T = 0.1ms)TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0; // 重复计数器只有高级定时器才有NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn; // 指定中断通道NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; // 使能NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1; // 抢占优先级NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1; // 响应优先级/*-------- 配置时钟 --------*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 使能TIM2时钟TIM_InternalClockConfig(TIM2); // 选择内部时钟源/*-------- 配置时基单元 --------*/TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);TIM_ClearFlag(TIM2, TIM_FLAG_Update);	// 手动清除中断标志位/*-------- 使能更新中断 --------*/TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);/*-------- 配置NVIC --------*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 注意:整个芯片只能使用1种分组NVIC_Init(&NVIC_InitStruct);/*-------- 启动TIM --------*/TIM_Cmd(TIM2, ENABLE);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之批量归一化的原理

Batch Normalization(批标准化)是一种深度学习中常用的技术,用于提高神经网络的训练速度和稳定性。它由 Sergey Ioffe 和 Christian Szegedy 在 2015 年的论文《Batch Normalization: Accelerating Deep Network Tr…

Spark微博舆情分析系统 情感分析 爬虫 Hadoop和Hive 贴吧资料 双平台 讲解视频 大内容 Hadoop ✅

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

LIB3:MISC固件库 - LI,Yi

介绍标准库中的MISC固件库1. misc.h * @file misc.h * @brief 本文件包含所有杂项固件库函数的函数原型(CMSIS 函数的补充功能)。1.1 变量声明 /** * @brief NVIC 初始化结构体定义 */typedef struct {uint8_…

AT_abc250_h [ABC250Ex] Trespassing Takahashi

推式子题 考虑如何求出任意一个点到离它最近的房子的距离? 有一个很巧妙的处理方法是,我们可以建一个超级源点,连向所有房子,权值设为 \(0\),然后在新图上跑一个最短路,就能求出所有点到离它最近的房子的距离 \(…

11/20

今天无事发生,明天没课,嘿嘿

Langchain Splitter源码阅读笔记(一)CharacterTextSplitter

一、TextSplitter TextSplitter继承自BaseDocumentTransformer,是一个抽象类,不能直接创建实例。核心(内部)属性有: _chunk_size: 每块大小 _chunk_overlap: 每块之间的重叠区大小 _length_function: 计算大小的方法…

《从“直接对话”到 “集成开发调用”:智谱 GLM-4.6 引领 Coding 场景的效率跃迁》 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:Visual Studio Code 高效开发完全指南(2025年更新版)

完整教程:Visual Studio Code 高效开发完全指南(2025年更新版)2025-11-20 18:57 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…

开源低代码平台落地痛点解析

开源低代码平台凭借自主可控、成本优化的优势,成为越来越多企业数字化转型的选择。但实际落地过程中,不少企业遭遇技术适配不畅、安全漏洞频发、维护成本失控等问题,导致项目推进受阻,甚至中途搁置。 很多企业误以…

开源低代码 vs 闭源低代码:深度对比与企业选型决策指南

企业数字化转型过程中,低代码平台的选型往往陷入 “开源还是闭源” 的两难。开源低代码的自主可控与闭源低代码的成熟稳定,分别击中了企业的不同核心诉求。但很多企业在选型时,仅基于 “是否免费”“是否易上手” 等…

day10-Dify对接本地大模型

今日内容 1 补充 1.1 dify服务开启和关闭 # 1 dify服务开启关闭-个人电脑,大部分同学都会关机--》服务器是永远不关机 7*24*365 稳定不停机运行-关机再重启,dify没启动,就访问不了-win/mac本地:启动,关闭dify服务…

Windows 11** 上安装 MySQL

在 Windows 11 上安装 MySQL 的流程和 JDK/Tomcat 类似,分为下载、安装、配置和验证四步。下面给你一个完整的操作指南 👇🖥️ 安装 MySQL 步骤 1. 下载 MySQL前往 MySQL 官方下载页面 推荐下载 MySQL Installer …

Windows 11 上安装 PostgreSQL

Windows 11 上安装 PostgreSQL🖥️ 安装 PostgreSQL 步骤 1. 下载 PostgreSQL前往 PostgreSQL 官方下载页面 推荐下载 EnterpriseDB 提供的 Windows 安装包 (Installer),它包含 PostgreSQL Server、pgAdmin 管理工具…

2025青岛防水补漏公司怎么选?首选青岛极冠快修,堵漏、漏水检测全业务覆盖,连锁企业值得信赖

随着城市建筑老化与极端天气频发,防水补漏成为维护建筑安全的关键需求。在2025年青岛防水服务市场中,青岛极冠快修(青岛尤卉防水)凭借十六年本地化服务经验与技术沉淀,成为众多家庭与企业客户的信赖选择。无论是屋…

WebRTC在低时延直播中的应用

本文分享自天翼云开发者社区《WebRTC在低时延直播中的应用》.作者:江****禄 随着互联网技术的发展,视频直播成为了许多行业中的关键应用,包括教育、娱乐、体育赛事和电子竞技等。在这些应用中,低时延直播尤为重要,…

合并 K 个升序链表-leetcode

题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: …

解码线程池

线程池核心概念 线程池是管理线程的缓冲机制,提前创建一定数量的线程存入 “池子” 中,任务到来时直接从池中取出线程执行,任务完成后线程不销毁,放回池中待命。其核心作用是减少线程频繁创建 / 销毁的开销,避免线…

Windows 11 上安装 JDK

在 Windows 11 上安装 JDK🖥️ 安装步骤详解 1. 下载 JDK前往 Oracle 官方下载页面 或 OpenJDK 官网Oracle下载共享账号 账号:83926039@qq.com 密码:Oracle1.推荐选择 长期支持版本 (LTS),如 JDK 11 或 JDK 17,…

cacti 监控 linux

Cacti 是一个基于 Web 的监控工具,主要用于监控 Linux 系统和网络设备。它使用 SNMP(Simple Network Management Protocol)来收集数据,并通过图形化界面展示监控数据。? 一、Cacti 的基本功能监控系统资源:CPU 使…