STM32计数器记数实验(TIM2 + OLED显示)| 附完整源码

演示视频:B站 - STM32计数器记数实验

一、 项目简介

本实验基于 STM32F103,利用 TIM2定时器外设 实现计数器功能,通过 中断机制 记录次数,并将当前计数值显示在 OLED 上。该项目适合初学者学习 定时器中断、计数器模式、数码显示 的综合应用。

功能简述:

  • 定时器每发生一次 更新中断 ,变量 Num 自增

  • OLED 实时显示 Num值TIM2计数器值

二、 开发环境与硬件说明

项目 内容
MCU STM32F103C8T6
工具链 Keil uVision5 + ST-Link下载器
显示模块 0.96寸OLED I2C接口
外设 TIM2定时器

三、主函数代码

cpp 复制代码
#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"

uint16_t Num;

int main(){
	OLED_Init();
	Timer_Init();
	OLED_ShowString(1,1,"Num:");
	
	while(1){
		OLED_ShowNum(1,5,Num,5);
		OLED_ShowNum(2,5,TIM_GetCounter(TIM2),5);
	}
}


void TIM2_IRQHandler(void){
	if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET){
		Num++;
		TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
	}
}

四、实现逻辑解析

  • 定时器配置

    • 预分频值 7200-1,分频后时钟 = 10kHz

    • 自动重装载值 10000-1,溢出周期 = 1秒

  • 中断处理

    • 每秒触发一次 TIM2_IRQHandlerNum++
  • OLED显示

    • 第一行显示 Num(中断计数)

    • 第二行显示 TIM2当前计数器值

五、知识点总结

知识点 说明
定时器基本模式 向上计数,到达 ARR 产生更新中断
NVIC配置 使能TIM2中断,设置优先级
OLED显示 通过I2C驱动,实时刷新计数值
相关推荐
泛凡(Linyongui)32 分钟前
第三篇、生命的bug分两种:一种是Flash坏了,一种是RAM乱了
人工智能·单片机·程序人生
恒锐丰小瑞35 分钟前
率能SS8844T 40V/2.5A/四通道1/2H桥驱动芯片,IN/EN独立控制接口与低导通电阻(350mΩ),用于纺织机械/工业自动化/机器人
单片机·嵌入式硬件·机器人·自动化
Hello_Damon_Nikola1 小时前
TPA3116D2DADR从入门到精通
人工智能·单片机·嵌入式硬件·物联网
zlinear数据采集卡1 小时前
数据采集卡从入门到精通(46):趋势展望——软件定义硬件、AI分析与开源生态
arm开发·stm32·单片机·嵌入式硬件·fpga开发·开源
智购科技自动售货机工厂1 小时前
2026自动售货机电机驱动芯片选型:从L298N到DRV8870的工程实践~YH
大数据·开发语言·数据库·人工智能·单片机·嵌入式硬件·scikit-learn
恒锐丰科技林技术员1 小时前
SS8918T 微步进电机驱动芯片:高性能步进运动控制解决方案
经验分享·嵌入式硬件·硬件工程
2601_966799041 小时前
酷嗨米H300三路超清采集盒深度解读:重构三机位直播的硬件解决方案
嵌入式硬件
hongmai6668882 小时前
把玩ESP8684-WROOM-04C-H4X:一颗耐高温的RISC-V小钢炮
笔记·单片机·嵌入式硬件·物联网·risc-v
米饭不加菜2 小时前
51单片机入门LED篇
stm32·单片机·51单片机
Jack153027682792 小时前
D2596HV高压异步DC-DC降压芯片简介
嵌入式硬件·汽车·51单片机·无人机·工业自动化