PWM输出配置步骤STM32F103

1、使能定时器及端口时钟,并设置引脚复用映射

RCC_APB1PeriphClock(RCC_APB1Periph_TIM3,ENABLE);

注意定时器输出端口的重映射功能。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出

2、初始化定时器参数,包含自动重载值,分频系数,计数方式等。

void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

3、初始化PWM输出参数,包含PWM模式,输出极性,使能等。

void TIM_OCxInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStructure);

typedef struct

{

uint16_t  TIM_OCMode;               //输出比较模式

uint16_t  TIM_OutputState;          //比较输出使能

uint16_t  TIM_OutputNState;       //比较互补输出使能(高级TIM)

uint16_t  TIM_Pulse;                    //脉冲宽度(高级TIM)

uint16_t  TIM_OCPolarity;           //输出极性

uint16_t  TIM_OCNPolarity;         //互补比较输出极性(高级TIM)

uint16_t  TIM_OCIdleState;         //空闲状态下比较输出状态(高级TIM)

uint16_t  TIM_OCNIdleState;         //空闲状态下比较输出状态(高级TIM)

} TIM_OCInitStructure

分析PWM配置:配置TIM3的CH1为PWM1模式,输出极性为低电平,使能PWM输出。

TIM_OCInitTypeDef   TIM_OCInitStructure;//定义PWM结构体变量

TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;  //模式PWM1

TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low; //有效电平为低电平

TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; //使能PWM输出

TIM_OC1Init(TIM3,&TIM_OCInitStructure)

4、开启定时器

void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

TIM_Cmd(TIM3,ENABLE);   //开启定时器

5、修改TIMx_CCRx的值控制占空比

void TIM_SetCompare1(TIM_TypeDef* TIMx, uint32_t Compare1);

6、使能TIMx在CCRx上的预装载寄存器

void TIM_OCxPreloadConfig(TIM_TypeDef* TIMx, uint16_t  TIM_OCPreload);

参数1选择定时器;参数2用于选择使能还是失能输出比较预装载寄存器

7、使能TIMx在ARR上的预装载寄存器的允许位

void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);

注意:高级定时器若要输出PWM波形,不许设置一个MOE位(寄存器TIMx_BDTR的第15位)。需配置函数void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值