TIM定时中断和PWM驱动呼吸灯

本文介绍了如何使用STM32的TIM2实现5秒定时发送串口消息和2秒间隔LED闪烁,以及如何配置PWM驱动呼吸灯效果。通过设置时基单元、NVIC中断和GPIO,实现了定时中断和PWM占空比调整,实验中还讨论了延时处理和PWM频率分辨率的计算方法。
摘要由CSDN通过智能技术生成

TIM定时中断和PWM驱动呼吸灯

注:本人使用的是标准库

一、使用TIM2实现5s定时向串口输出“hello world!”,以及2s演示LED灯
1、中断原理

首先选择时钟,可以选择内部时钟和外部时钟,内部时钟由内部RCC提供,外部需外接硬件设备通过引脚触发计时;

主要定时模块是时基单元,预分频器(PSC)与自动重装器(ARR)主要作用是确定实际计时时长,如当选择内部时钟时,内部时钟频率是72MHz,若设置7200的分频则会得到10k的计数频率,在10k的计数频率下若设置10000

的自动重装,则相当于在10k的频率下(即周期为1/10000)计10000个数就等价于计时1s。而计数器(CNT)的作用时确定计数上限,到达计数器值时产生更新中断,进入中断输出控制,再通过NVIC进行中断优先级选择,最后再到cpu进行处理。
在这里插入图片描述

(注:图片取自bilibili up主:江科大自化协)

2、代码实现

根据原理图将各个部分配置好即可

1)时钟配置

首先得开始TIM2的时钟,以开启TIM2

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//注意TIM2在APB1总线下

其次选择时钟源,仅需实现定时功能,这里选择内部时钟即可

TIM_InternalClockConfig(TIM2);//开启TIM2的内部时钟,若不写此语句也可,因为定时器上电后默认使用内部时钟
2)配置时基单元,即初始化TIM2
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//定义时基单元结构体来配置各个参数
	TIM_TimeBaseInitStructure.TIM_Cl
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值