STM32定时器中断影响主程序PWM输出[附解决方案]

STM32定时器中断影响主程序PWM输出[附解决方案],第1张

我通过TIMER1输出四路PWM控制电机,通过TIMER2产生10ms定时器中断进行OLED菜单的 *** 作。



程序如下:

int main(void)
{
    delay_init();	    	 //延时函数初始化
    //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
    //uart_init(115200);	 //串口与TIMER1撞车
	TIM1_PWM_Init(7199,0);		//越大越快
	Motor_BIG(0,0);
	Motor_Tiny(0);
	TIM2_Int_Init(99,7199);
	TIM3_PWM_Init(7199,0);
//	Motor_Step(0,0);
	LED_Init();		  	 //初始化与LED连接的硬件接口
    EXTIX_Init();		//外部中断初始化
    KEY_Init();
	OLED_Init();
    OLED_Clear();
    while(1)
    {
		TIM_SetCompare3(TIM1,6400);
	}
}

现象是中断函数可以进入,也就是菜单可以正常被按键 *** 作,但是电机输出没有任何反应,PWM输出也无效。



经过几次修改,把定时器中断频率修改一下,即可完美解决。


目前不知道为什么。



修改如下。


TIM2_Int_Init(999,7199);

这是我在原子论坛发的帖子,有配置代码。



http://www.openedv.com/thread-334959-1-1.html

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/567936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存