×
单片机 > 单片机程序设计 > 详情

stm32f103 pwm模式配置总结

发布时间:2020-08-27 发布时间:
|

void MiniBalance_PWM_Init(u16 arr,u16 psc)

{

RCC->APB1ENR|=1<<1; //TIM3时钟使能

RCC->APB2ENR|=1<<3; //PORTB时钟使能

GPIOB->CRL&=0XFFFFFF00; //PORTB0 1复用输出

GPIOB->CRL|=0X000000BB; //PORTB0 1复用输出

TIM3->ARR=arr;//设定计数器自动重装值

TIM3->PSC=psc;//预分频器不分频

TIM3->CCMR2|=6<<12;//CH4 PWM1模式

TIM3->CCMR2|=6<<4; //CH3 PWM1模式

TIM3->CCMR2|=1<<11;//CH4预装载使能

TIM3->CCMR2|=1<<3; //CH3预装载使能

TIM3->CCER|=1<<12; //CH4输出使能

TIM3->CCER|=1<<8; //CH3输出使能

TIM3->CR1=0x8000; //ARPE使能

TIM3->CR1|=0x01; //使能定时器3

}


需要更改pwm时候应该对哪个寄存器进行操作:

#define PWMA TIM3->CCR4 //倒立摆仅使用一路驱动 使用的A路



main

{

MiniBalance_PWM_Init(7199,0); //=====初始化PWM 10KHZ,用于驱动电机

while(1)

{

PWMA=3000; //0~7200

}

}

110: PWM模式1- 在向上计数时,一旦TIMx_CNT无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否
则为有效电平(OC1REF=1)。
111: PWM模式2- 在向上计数时,一旦TIMx_CNT有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电
平。

2.

其中TIMX_EGR寄存器的UG位初始化所有寄存器没有设置是因为在寄存器版的程序里面的stm32f10x.c中已经定义为了‘1’:

重新初始化计数器,并产生一个更新事件

3.

OCx的极性可以通过软件在TIMx_CCER寄存器中的CCxP位设置,它可以设置为高电平有效或

低电平有效。

CC1P:输入/捕获1输出极性 (Capture/Compare 1 output polarity)
CC1通道配置为输出:
0: OC1高电平有效
1: OC1低电平有效
CC1通道配置为输入:
该位选择是IC1还是IC1的反相信号作为触发或捕获信号。
0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时, IC1不反相。
1:反相:捕获发生在IC1的下降沿;当用作外部触发器时, IC1反相。


这里没有设置是因为默认是‘1’。


关键字:stm32f103  pwm模式  配置总结 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会