6.2 定时器定时中断&定时器外部时钟

文章详细介绍了如何在STM32微控制器中使用定时器进行定时中断和外部时钟配置,包括时钟源选择、中断配置、NVIC设置以及程序设计实例。通过模块化编程,实现了定时器的初始化和中断处理,应用包括计数器自动递增和红外传感器计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 定时器定时中断

1.1接线图

因为定时器和中断系统的电路都在STM32内部,定时中断是为我们程序设计提供服务的,芯片外部只需要插一个OLED显示数据。

1.2 设计思路

本设计采用模块化编程,在配置好的工程基础上在System文件夹中加上Timer.c、Timer.h两部分。

在Timer.c首先进行函数的初始化。

初始化定时器大致思路

1. 第⼀步,RCC开启时钟 ,定时器的基准时钟和整个外设的工作时钟就会同时打开。 2. 第⼆步,选择时基单元的时钟源 (内部时钟源) 3. 第三步,配置时基单元 4. 第四步,配置输出中断控制,允许更新中断输出到NVIC 5. 第五步,配置NVIC,在NVIC中打开定时器中断的通道,并分配⼀个优先级 6. 第六步,运⾏控制 7. 第七步,使能计数器,计数器使能后,计数器开始计数,当计数器更新时,触发中断

8. 第八部,定时器中断函数,中断函数每隔一段时间就能自动执行一次

1.3 知识储备--定时器常用库函数

  • 恢复缺省配置函数

void TIM_DeInit(TIM_TypeDef* TIMx);
  • 时基单元初始化函数

void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct);
  • 把结构体变量赋⼀个默认值函数

void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct);
  • 使能计数器函数 (对应运行控制)

void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
  • 使能中断输出信号函数(中断输出控制)

void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, Functional
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值