关于如何单独失能STM32 TIM通道的方法

编程入门 行业动态 更新时间:2024-10-22 20:31:12

关于如何单独失能STM32 TIM<a href=https://www.elefans.com/category/jswz/34/1769997.html style=通道的方法"/>

关于如何单独失能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通道的方法

本文发布于:2024-02-06 22:56:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751514.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:通道   方法   TIM

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!