请问 不关闭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条回答
20061002838
1楼-- · 2019-12-12 02:03
高级定时器的话,操作MOE位,BDTR寄存器里面
普通定时器的话,操作CCxE, CCxNE位,CCER寄存器里面
xiaoergao
2楼-- · 2019-12-12 06:49
 精彩回答 2  元偷偷看……
GZZXB
3楼-- · 2019-12-12 10:00
20061002838 发表于 2019-10-17 11:24
高级定时器的话,操作MOE位,BDTR寄存器里面
普通定时器的话,操作CCxE, CCxNE位,CCER寄存器里面 ...

    这个应该可以实现,不知道将CCXE=0后IO是一种怎样的状态? 浮空高阻吗?
sme
4楼-- · 2019-12-12 12:20
最好的方法,切换至IO状态。如果IO状态需要确定,有以下2个方法:
1. 根据需要确定的电平状态,切换成带上拉或下拉的输入模式
2. 切换成输出模式,输出电平先通过输出数据寄存器ODR设置好
GZZXB
5楼-- · 2019-12-12 13:52
sme 发表于 2019-10-17 17:33
最好的方法,切换至IO状态。如果IO状态需要确定,有以下2个方法:
1. 根据需要确定的电平状态,切换成带上 ...

    你家的IC还没批量供应?
su33691
6楼-- · 2019-12-12 17:41
用过9楼的方法。

一周热门 更多>