STM32通用定时器TIM实现PWM波配置步骤

发布者:快乐兔子最新更新时间:2020-06-16 来源: eefocus关键字:STM32  通用定时器  TIM  PWM波  配置步骤 手机看文章 扫描二维码
随时随地手机看文章

//1、开启定时器时钟和需要用到的IO口


void Clock_Init(void)

{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,

ENABLE);//因为准备把PB5口作为输出端口,所以接下来AFIO使能,如果使用默认的PA7 输

//出则不用使能AFIO,但需要使能GPIOA

}


//2、IO口并重映射TIM3

void GPIO_Out_Init(void)

{

GPIO_InitTypeDef    GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//因为启用了AFIO,所以需要配置为复

//用推挽输出;若不进行重映射,使用推挽输出即可,GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//TIM3开启部分重映射


}

//3、初始化定时器

void TIM_PWM_Init(u16 arr,u16 psc);

{

TIM_TimeBaseInit   TIM_TimeBaseStructure;

TIM_TimeBaseStructure.TIM_Period=arr;

TIM_TimeBaseStructure.TIM_Prescale=psc;

TIM_TimeBaseStructure.TIM_ClockDivision=0;

TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

TIM_Cmd(TIM3,ENABLE);

}

//4、初始化输出通道设置

void OC2_PWM_Init(void);

{

TIM_OCInitTypeDef   TIM_OCInitStructure;

TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;

TIM_OCInitStructure.TIM_OutputState=TIM_OutoutState_Enable;

TIM_OCInitStructure.TIM_OCpolarity=TIM_OCpolarity_High;

TIM_OC2Init(TIM3,&TIM_OCInitStructure);

TIM_OC2preloadConfig(TIM3,TIM_OCPreload);

}

int main(void)

{

u16 led0pwmval=0;

u8 dir=1;

delay_init();

Clock_Init();

GPIO_Out_Init();

TIM_PWM_Init(899,0);

OC2_PWM_Init();

while(1)

{

delay_ms(10);

if(dir)

led0pwmval++;

else

led0pwmval--;

if(ledopwmval>100)

    dir=0;

if(led0pwmval==0)

    dir=1;

TIM_SetCompare2(TIM3,ledopwmval);

  //因为每个定时器都有四个输出输出通道,上面第四步使用通道二作为输出,因此这里比较输出

  //时也使用通道二

}

}

关键字:STM32  通用定时器  TIM  PWM波  配置步骤 引用地址:STM32通用定时器TIM实现PWM波配置步骤

上一篇:STM32 PWM波驱动模拟舵机(库函数版)
下一篇:嵌入式STM32学习笔记(3)——pwm波及呼吸灯

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved