打印

PWM输出端口,能自己设置高电平或低电平吗?

[复制链接]
6701|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanggzq|  楼主 | 2008-12-22 13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用PD15做为TIM4_CH4的PWM输出,但是不能用GPIO_ResetBits(),GPIO_SetBits()来改变端口的电平?请问怎么操作可能实现吗?
沙发
香水城| | 2008-12-22 15:51 | 只看该作者

使用了I/O端口的复用功能,当然不能再使用它的GPIO功能

使用特权

评论回复
板凳
shanggzq|  楼主 | 2008-12-22 16:39 | 只看该作者

那怎么可以实现?

使用特权

评论回复
地板
shanggzq|  楼主 | 2008-12-22 16:40 | 只看该作者

在断开PWM后,怎么设置端口的电平?

使用特权

评论回复
5
香水城| | 2008-12-22 18:12 | 只看该作者

你可以使用强置输出模式(Forced output mode)

请看STM32技术参考手册的第13.3.7节:



13.3.7 强置输出模式

在输出模式(TIMx_CCMRx寄存器中CCxS=00)下,输出比较信号(OCxREF和相应的OCx)能够直接由软件强置为有效或无效状态,而不依赖于输出比较寄存器和计数器间的比较结果。

置TIMx_CCMRx寄存器中相应的OCxM=101,即可强置输出比较信号(OCxREF/OCx)为有效状态。这样OCxREF被强置为高电平(OCxREF始终为高电平有效),同时OCx得到CCxP极性位相反的值。

例如:CCxP=0(OCx高电平有效),则OCx被强置为高电平。

置TIMx_CCMRx寄存器中的OCxM=100,可强置OCxREF信号为低。

该模式下,在TIMx_CCRx影子寄存器和计数器之间的比较仍然在进行,相应的标志也会被修改。因此仍然会产生相应的中断和DMA请求。

使用特权

评论回复
6
shanggzq|  楼主 | 2008-12-22 18:49 | 只看该作者

谢谢!用最笨的方法实现了

要用端口操作时候,把复用关闭.

使用特权

评论回复
7
yhy08090| | 2019-6-18 13:53 | 只看该作者
shanggzq 发表于 2008-12-22 18:49
要用端口操作时候,把复用关闭.

复用怎么关闭

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

71

帖子

1

粉丝