STM32 PWM输出之TIM_SetCompare函数的应用

STM32 PWM输出之TIM_SetCompare函数的应用

想必输出PWM大家都应该会了吧,但是如何更加灵活方便的使用PWM,可能大家还存在着问题,今天我给大家介绍一下TIM_SetCompare这个函数,让大家能够随时随地输出PWM。

/**
  * @brief  Sets the TIMx Capture Compare1 Register value
  * @param  TIMx: where x can be 1 to 17 except 6 and 7 to select the TIM peripheral.
  * @param  Compare1: specifies the Capture Compare1 register new value.
  * @retval None
  */
void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)
{
  /* Check the parameters */
  assert_param(IS_TIM_LIST8_PERIPH(TIMx));
  /* Set the Capture Compare1 Register value */
  TIMx->CCR1 = Compare1;
}

这个是STD的标准库函数,这个函数的功能是就是用来输出PWM的。在深入了解这个函数之前我们先看一个图片。在这里插入图片描述
这个图片表示的是各个定时器下能够输出PWM的GPIO口。我们以PA1为例,从表中可以看出PA1位于定时器5的CH2。对于PA1我们怎么让他输出PWM呢?首先就是先把配置给配置好,让他能够输出PWM,在此基础上,才能随心所欲的使用他输出PWM。
好了,废话不多说,开始我们的重点,这个函数TIM_SetCompare1,这个函数有四个,分别是TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4。位于CH1那一行的GPIO口使用TIM_SetCompare1这个函数,位于CH2那一行的GPIO口使用TIM_SetCompare2这个函数。以此类推。我们再看这个函数的参数,第一个参数传入相应定时器,(定时器6,7除外)。使用的GPIO口位于哪个定时器那一列就传入哪个定时器。第二个参数是输出PWM的高电平的时间。这个值如果大于周期的值,将会与周期保持一致。用第二个参数除以周期就得占空比。比如我想要使用PA1输出PWM,则应该这样写TIM_SetCompare2(TIM5,Compare)。Compare是输出高电平的时间。你想要在哪里使用PWM就在哪里调用这个函数。GPIO口,占空比,周期都可以随意设置,是不是很方便啊。

发布了2 篇原创文章 · 获赞 3 · 访问量 67

猜你喜欢

转载自blog.csdn.net/Pased/article/details/104112746