当前位置: 首页 > news >正文

CODE3:TIM定时器 - LI,Yi

一、定时器定时中断

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.jsqmd.com/news/45858/

相关文章:

  • 深度学习之批量归一化的原理
  • Spark微博舆情分析系统 情感分析 爬虫 Hadoop和Hive 贴吧资料 双平台 讲解视频 大内容 Hadoop ✅
  • LIB3:MISC固件库 - LI,Yi
  • AT_abc250_h [ABC250Ex] Trespassing Takahashi
  • 11/20
  • Langchain Splitter源码阅读笔记(一)CharacterTextSplitter
  • 《从“直接对话”到 “集成开发调用”:智谱 GLM-4.6 引领 Coding 场景的效率跃迁》 - 实践
  • 2025-11-20 早报新闻
  • 完整教程:Visual Studio Code 高效开发完全指南(2025年更新版)
  • 开源低代码平台落地痛点解析
  • 开源低代码 vs 闭源低代码:深度对比与企业选型决策指南
  • Windows 11** 上安装 MySQL
  • Windows 11 上安装 PostgreSQL
  • 2025青岛防水补漏公司怎么选?首选青岛极冠快修,堵漏、漏水检测全业务覆盖,连锁企业值得信赖
  • WebRTC在低时延直播中的应用
  • 合并 K 个升序链表-leetcode
  • 解码线程池
  • Windows 11 上安装 JDK
  • cacti 监控 linux
  • 2025年成都电线电缆采购标杆厂家最新推荐:成都鑫佰亿,电力电缆/高压电缆/中压电缆/低压电缆/铜芯电缆/铝芯电缆/树立电线电缆品质新标准
  • 2025年11月取暖器、电暖器十大品牌权威推荐:石墨烯取暖成主流,告别干燥严寒,解锁全屋舒适暖居体验
  • 社区伙伴活动推荐丨Global night第二场 连线日本!来玩!
  • 2025年成都电线电缆优质供应商推荐:铝合金电缆/家装电线/家用电线/铜芯电线/硬芯线/软电线/成都鑫佰亿,以品质与服务树立行业新标杆
  • 用了会Windows 10
  • Linux初级知识:sudo 提权
  • 2025 年 11 月牛奶分析仪厂家推荐排行榜,实验室/进口/全自动牛奶分析仪,乳品厂/奶农/牧场用牛奶分析仪,德国盖博/FUNKE GERBER/LUM及美国PerkinElmer品牌精选
  • 洛谷P1962 斐波那契数列 题解 矩阵快速幂
  • 2025最新青岛防水补漏服务TOP5口碑推荐:防水补漏/防水/补漏/堵漏/漏水检测服务全评测,守护建筑安全防线
  • 2025年11月汽车陪练十大品牌权威推荐:新手驾到领衔,科学陪驾助你从容上路,告别马路焦虑
  • 哈希表封装myunordered_map以及set - 详解