库函数改变预分频系数

调用函数TIM_PrescalerConfig()
参数一:定时器几 参数二:预分频系数 参数三:预分频值及时装入or在更新事件时装入
eg: TIM_PrescalerConfig(TIM4,40,TIM_PSCReloadMode_Immediate)
在这里插入图片描述

void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode)
{
  /* Check the parameters */
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_TIM_PRESCALER_RELOAD(TIM_PSCReloadMode));
  /* Set the Prescaler value */
  TIMx->PSC = Prescaler;
  /* Set or reset the UG Bit */
  TIMx->EGR = TIM_PSCReloadMode;
}
好的,下面是一个简单的示例代码,展示如何使用STM32F103C8T6的TIM2定时器和PWM输出模式,不使用库函数。 首先需要打开TIM2定时器的时钟,以及GPIO端口的时钟。可以使用如下代码: ``` RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); ``` 接下来,需要配置GPIO端口为PWM输出模式。可以使用如下代码: ``` GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //使用GPIOA1作为PWM输出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); ``` 然后,需要配置TIM2定时器的相关参数,例如PWM频率、占空比等。可以使用如下代码: ``` TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 1000 - 1; //设置PWM周期为1ms TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1; //设置分频系数为72,时钟频率为72MHz/72=1MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 500; //设置占空比为50% TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_Cmd(TIM2, ENABLE); ``` 以上代码将TIM2定时器设置为PWM输出模式,PWM周期为1ms,分频系数为72,占空比为50%。 最后,在主函数中,可以使用如下代码改变PWM输出的占空比: ``` TIM_SetCompare1(TIM2, 250); // 设置占空比为25% ``` 以上代码将PWM输出的占空比改为了25%。 需要注意的是,以上代码只是一个简单的示例,实际使用时还需要根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值