stm32f072定时器使用问题记录

1、定时器改周期值在定时中断函数里改不行,只能是在中断中加标志位,然后在主循环中检测标志位修改周期。

2、定时器输出pwm时关闭需注意,不能直接用 TIM_Cmd(TIM1, DISABLE);要保证关闭后是低电平,今天试的一种方法:因为明确知道一个周期内哪个时间段是低电平,设置一个CCR2,中断函数里关闭定时器。

要关闭定时器时先用标志位s_Timer_per.tim1_stop_flag =1; 再在中断函数中检测:

void TIM1_CC_IRQHandler(void)  
{
        if (TIM_GetITStatus(TIM1, TIM_IT_CC2) != RESET)
        {
            TIM_ClearITPendingBit(TIM1, TIM_IT_CC2 );
            
            if(s_Timer_per.tim1_stop_flag==1)
            {
                TIM_Cmd(TIM1, DISABLE);
                s_Timer_per.tim1_stop_flag=0;
            }

}

注:定时器1的更新中断和捕获比较中断用的中断函数不同,定义时也不同,TIM1_BRK_UP_TRG_COM_IRQn和TIM1_CC_IRQn

下面是更新中断函数:

void TIM1_BRK_UP_TRG_COM_IRQHandler(void)        
{

        if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)
        {
            TIM_ClearITPendingBit(TIM1, TIM_IT_Update );                 
        }

}

3、  在主从定时器中,主定时器的触发条件设置:

  TIM_SelectOutputTrigger(TIM1,TIM_TRGOSource_Update);//更新产生触发输出

TIM_TRGOSource_Update是定时更新时触发

TIM_TRGOSource_OC1Ref是设的CCR1到时触发

4、stm32定时器--通道pwm输出参数TIM_OCInitStructure如何配置

5、stm32定时器--关闭定时器时保证是低电平方法

6、STM32的定时器 TIM_ARRPreloadConfig开与不开到底有什么影响

7、stm32f072一个主定时器计时触发两个从定时器同时产生单次脉冲

8、stm32f0设置tim2单脉冲模式-tim1内部触发

9、转:STM32定时器初始化就进中断问题

10、stm32的定时器1有时不产生波形问题找原因

11、stm32f072--定时器17使用CH1N通道输出pwm时没有波形的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值