通道的方法"/>
关于如何单独失能STM32 TIM通道的方法
源文章地址:
关于如何单独失能STM32 TIM通道的方法(转载)
个人项目需要单独失能TIM通道,这篇博文很好的解决了我的问题。
最近一个项目涉及到了六路PWM的产生,这里就不说这个了,如果有不会的可以参考我的另外一篇博客。这里说一下如何单独的关闭与开启定时器的一路通道,参考了很多网友走过来的历程,这里引用他们的例子,特说明,目的为了大家更好的学习,希望他们理解。
网友以前遇到问题:
TIM2的4个通道想分别用在不同的事件处理中,但是似乎只有TIM_Cmd()这函数可以用,就是把所有通道同时开启或关闭, 而想用TIM_CCxCmd()来分别操作各个通道则完全不起作用。
比如说TIM_Cmd(TIM2, ENABLE); 了之后,再TIM_CCxCmd(TIM2, TIM_Channel_1, TIM_CCx_Disable);就没办法关闭这个通道,还是会不停的进定时器中断。如果TIM_Cmd(TIM2, DISABLE); 了,则TIM_CCxCmd(TIM2, TIM_Channel_1, TIM_CCx_Enable);
也没办法把这个通道开启。请问该怎么解决这种问题。。。
(网友1的程序中使用的是void TIM2_IRQHandler(void)定时器中断)
我的总结:如果你是和网友的使用方法一致,使用到了TIMx_IRQHandler这个中断函数,那么你单独关闭通道的函数则是 TIM_ITConfig(TIM2 , TIM_IT_CC1, ENABLE);或DISABLE,直接开中断或关中断。而如果你不是使用的这种中断,而是系统自动配置的时基单元的中断,那么单独关闭与开启一路通道则需要使用
TIM_CCxCmd(TIM2, TIM_Channel_1, TIM_CCx_Enable);或DISABLE
更多推荐
关于如何单独失能STM32 TIM通道的方法
发布评论