请问 不关闭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条回答
lw2012
1楼-- · 2019-12-13 22:47
本帖最后由 lw2012 于 2019-10-18 12:48 编辑

正好前两天刚用到这个功能
HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_1);
注意关闭后GPIO貌似进入了未被配置状态,要根据需要做调整,我是外部加了一个下拉电阻,省事。
sme
2楼-- · 2019-12-14 02:25
huangqi412 发表于 2019-10-18 12:44
也是兼容st?

嗯,二进制兼容。。。
tomzbj
3楼-- · 2019-12-14 05:58
sme 发表于 2019-10-18 12:22
1.8~5.5V......

不错不错~

一周热门 更多>