定时器2控制定时器3的pwm输出关闭

2019-10-16 02:21发布

通过定时器3输出PWM波形,现在想通过定时器2,定时一段时间后,进入中断函数,去关闭定时器3的pwm输出。
我通过串口中断的方式编写如下程序能够关闭定时器3的pwm输出,
        TIM_Cmd(TIM3, DISABLE);
//        TIM_CtrlPWMOutputs(TIM3, DISABLE);
        Io_pwm_Init();  //定时器3pwm输出所用的io初始化
  PWM_out=0;        //定时器3pwm输出所用的io=0


但是我把这段程序写到定时器2的中断函数中,不仅不能关闭定时器3,而且PWM波形都不能正确产生。
我已经试了,定时器2能进入中断,在没有定时器2关闭定时器3的程序时,pwm输出正常,
请问是哪里出了问题?我该从哪些方面找找问题。
谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
wenzh3333
1楼-- · 2019-10-16 07:01
应该是定时器2初始化之后就瞬间进了一次中断
。。。。
lycreturn
2楼-- · 2019-10-16 12:41
先初始化TIM2, 在初始化TIM3试试。
SIT1366682582
3楼-- · 2019-10-16 15:01
我现在也想用两个定时器,其中一个控制另一个输出PWM, 试了试也没成功,还在研究中,可以互助
SIT1366682582
4楼-- · 2019-10-16 16:07
你直接让它输出想要的波形个数然后用  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, DISABLE);  关闭TIM3也可以我已经实现了
滴丶滴
5楼-- · 2019-10-16 20:38
 精彩回答 2  元偷偷看……
SIT1366682582
6楼-- · 2019-10-17 01:57
滴丶滴 发表于 2016-12-12 15:44
http://www.openedv.com/posts/list/41019.htm
我用的这个方法也刚刚实现,之前试了两天了0.0示波器都换 ...

你使用两个定时器,一个定时器在中端里计数,来控制另一个TIM的pwm个数吗?我用一个TIM3产生pwm,加入uCOS时,网络调试助手调试,好像是只有在步进电机角度转够之后才能执行别的任务,电机转的时候,其他任务采集的数据不能上传网络,我想请教一下如何在计数pwm的同时能让出cpu也执行别的任务

一周热门 更多>