当前位置: 首页 > 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.gsyq.cn/news/55504.html

相关文章:

  • LIB3:MISC固件库 - LI,Yi
  • 《从“直接对话”到 “集成开发调用”:智谱 GLM-4.6 引领 Coding 场景的效率跃迁》 - 实践
  • day10-Dify对接本地大模型
  • WebRTC在低时延直播中的应用
  • 合并 K 个升序链表-leetcode
  • Windows 11 上安装 JDK
  • cacti 监控 linux
  • 用了会Windows 10
  • 2025 年 11 月牛奶分析仪厂家推荐排行榜,实验室/进口/全自动牛奶分析仪,乳品厂/奶农/牧场用牛奶分析仪,德国盖博/FUNKE GERBER/LUM及美国PerkinElmer品牌精选
  • 哈希表封装myunordered_map以及set - 详解
  • LangGraph1.0智能体本地开发调测搭建
  • 朝阳区婚姻律师事务所推荐:婚姻家事法律服务机构参考
  • 北京婚姻家庭法律事务所服务及专业机构参考
  • 北京处理家暴案件厉害的律师有哪些?行业实务参考
  • 北京离婚官司最厉害的律师有哪些?婚姻纠纷解决团队参考
  • 电商业务
  • 北京家事律师事务所有哪些?本地专业机构信息整理
  • 磁悬浮轴承非线性控制的挑战与难点剖析 - 实践
  • 绩效管理千万要抓好这2大关键,3个前提!
  • 有智能功能的家用咖啡机品牌推荐
  • 完整教程:WPF 核心概念笔记(补充示例)
  • 2025 最新铁芯源头厂家权威推荐榜:精准工艺加持,全场景适配品牌实力甄选环形铁芯/互感器铁芯公司推荐
  • Swift报错“EXC_BAD_ACCESS“?内存管理的ARC原理深度解析 - 详解
  • 2025年深圳CE标准机构权威推荐榜单:CE认证标准/CE检测认证/CE检测报告源头机构精选
  • 2025 最新加工厂家推荐!车铣复合 / 精密零件 / CNC 数控等加工服务品牌排行榜:权威甄选优质合作商高精度走心机 / 不锈钢铝合金黄铜非标零件加工推荐
  • wps 取消自动编号
  • NocoBase 本周更新汇总:新增图表配置的 Al 员工
  • 虚拟机上redhat7.2安装oracle 11g rac 集群
  • 2025年深圳会议室麦克风公司权威推荐榜单:无线会议话筒/桌面会议话筒/无线手拉手会议话筒源头公司精选
  • 2025 最新推荐!塑料板材设备厂家排行榜单:覆盖 PP/ABS/PE/PC 全系列生产线ABS 塑料板材设备/PE 塑料板材设备/PC 塑料板材设备公司推荐