stm32 定时器输出比较

OC(output compare)输出比较

输出比较通过比较cnt和ccr寄存器值的关系,来对输出电平进行置1,置0或反转的操作,用于输出一定频率和占空比的波形

每个高级定时器和通用定时器都拥有四个输出比较通道

PWM:脉冲宽度调制

在具有惯性的系统中,可以对一系列脉冲的宽度进行调制,来等效的获得所需的模拟参量,常应用于电机控速领域

如高电平为5v,低电平为0v的pwm波,当占空比为50%时,等效的模拟电压为2.5v,占空比为20%,等效的模拟电压为1v

这里的pulse详单与公式中的ccr,通过设置arr和pulse的值就可以起到修改占空比的作用

TIM_OCInitStructure.TIM.Pulse=;

此时需要将gpio口的输出模式定义为复用推挽输出模式,采用复用模式后,gpio的控制权将有输出控制寄存器转移到tim上,实现定时器对gpio口的控制

TIM_Setcompare1(TIM_typeDef* TIMx, uint16_t Compare1);

该函数可以用来单独更改通道一的ccr值

我们可以写一个函数来封装一下修改ccr值的函数比如我们要开启定时器2控制gpio扣的引脚,封装函数如下:

void PWM_Setcompare1(uint16_t Compare)

{

TIM_Setcompare1(TIM2,Compare);

}

主函数中代码如下:

一些初始化代码;

while(1)

{

for(i=1;i<=100;i++)

{

PWM_Setcompare1(i);

}

for(i=1;i<=100-i;i++)

{

PWM_Setcompare1(i);

}

}

端口重映射:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值