请问 不关闭timer如何用代码实现关闭PWM输出和打开PWM输出?

2019-12-10 18:09发布

    用的是STM32F030想要实现的功能如下:
           1  上电初始化输出PWM波形,这个PWM参数只在上电设置一次。并使能了溢出中断。
           2  在运行中依据按键定义开启输出PWM / 关闭输出PWM。 只是开启或关闭PWM输出,定时器依然在跑中断照样进入。
      
           说明:就是等效于在io对外加了个开关,这个开关打开就输出PWM,这个开关关闭就不输出PWM。 产生这个PWM的timer不做其他更改,该计数还是计数该中断还是中断时序不变。
     目前设想:
           1. 在GPIO和复用功能中切换,但是这个不知道怎么实现。 只知道从GPIO切换到复用功能,不知道怎么样从复用功能切换会GPIO。
           2. /* Set the Capture Compare Register value */
               TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse;
               修改比较寄存器为最小或最大,但是这样会改变比较匹配中断。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
SUPER_CRJ
1楼-- · 2019-12-10 21:57
使:PWM成为100%或者0% 能解决你的问题吗?
imliyucai
2楼-- · 2019-12-11 01:34
设置 PWM 的周期为最大值,应该可以吧。我做过类似的功能,具体记不得了。
xiaomu
3楼-- · 2019-12-11 06:36
 精彩回答 2  元偷偷看……
GZZXB
4楼-- · 2019-12-11 09:50
SUPER_CRJ 发表于 2019-10-17 10:41
使:PWM成为100%或者0% 能解决你的问题吗?

    我前面第2点就是这个意思了,会改变比较匹配中断吧。  最好是可以不改变内部运行,只是单单把IO输出关了。
ddplys
5楼-- · 2019-12-11 15:42
将PWM输出引脚改为GPIO输入模式
GZZXB
6楼-- · 2019-12-11 20:07
xiaomu 发表于 2019-10-17 10:45
修改IO口模式为输入模式,不管正常输入还是复用输入,都不会产生输出,但是io电平需要根据需要设置为上拉或 ...

    这样会不会改变PWM波形的相位,如果不会只是单纯控制IO输出与否就能达到我的要求了。映像中有些单片机是只要开启复用输出功能,IO就被强制设置为输出了。

一周热门 更多>