STM32CUBEIDE-F407(7)-定时器输出比较中断(形成几个不同频率的中断)

概述

本章通过STM32CUBEIDE配置STM32F407的定时器TIM3输出比较中断

原理

TIM5定时器拥有多达4个独立通道,可用于输入捕获、输出比较、PWM 生成(边沿和中心对齐模式)、单脉冲模式输出。

发生以下事件时生成中断/DMA请求:

更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)

触发事件(计数器启动、停止、初始化或通过内部/外部触发计数)

输入捕获

输出比较

 

其时基单元包括:计数器寄存器 (TIMx_CNT)、预分频器寄存器 (TIMx_PSC)、自动重载寄存器 (TIMx_ARR)

计数器寄存器 :计数器由预分频器输出 CK_CNT 提供时钟,仅当 TIMx_CR1 寄存器中的计数器启动位 (CEN) 1 时,才会启动计数器。
预分频器寄存器: 预分频器可对计数器时钟频率进行分频,分频系数介于 1 65536 之间。
计数器模式:递增技术、递减技术、中心对齐模式,具体特点请参考 https://blog.csdn.net/cyc19980105/article/details/135838645?spm=1001.2014.3001.5502
捕获/比较通道:
每个捕获 / 比较通道均围绕一个捕获 / 比较寄存器(包括一个影子寄存器)、一个捕获输入阶
段(数字滤波、多路复用和预分频器)和一个输出阶段(比较器和输出控制)构建而成。
下图概括介绍了一个捕获 / 比较通道。
输出比较模式: 选择计数器时钟(内部、外部、预分频器)。在 TIMx_ARR TIMx_CCRx 寄存器中写入所需数据。如果要生成中断和 / DMA 请求,将 CCxIE 位和 / CCxDE 位置 1。
选择输出模式。例如,当 CNT CCRx 匹配、未使用预装载 CCRx 并且 OCx 使能且为
高电平有效时,必须写入 OCxM=011 OCxPE=0 CCxP=0 CCxE=1 来翻转 OCx
输出引脚。

 电平翻转时进入中断

IDE操作

如图所示,我以TIM3的输出比较中断为例,设置的每次增加的点数为100,每加100实现电平的翻转,同时实现中断,在输出比较模式下,ARR的值并没有很大关系,一般情况下设置为65535,。

设置输出比较模式

分频2系数为84,时钟频率为84000000/84=1000000

这里的pulse我给的为100,频率为10k,1000,频率为1k(设为0也可以,但我一般初始化将其设为我频率对应的值)

模式为比较翻转模式

使能全局中断

使能捕获中断:

  HAL_TIM_OC_Start_IT(&htim3,TIM_CHANNEL_1);
  HAL_TIM_OC_Start_IT(&htim3,TIM_CHANNEL_2);

通过在中断回调函数里进行电平的翻转,来测其中断频率

void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
   if(htim->Instance==TIM3)
     {
       if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1)

           {
            HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_4);

              __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,(__HAL_TIM_GetCounter(htim)+100));//10Khz

           }
       if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2)
        {
           HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_3);
           __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2,(__HAL_TIM_GetCounter(htim)+1000));//1Khz

        }

     }

}

 电平翻转一次产生一次中断,对应中断频率为10k

 

 电平翻转一次产生一次中断,对应中断频率为1k 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值