当前位置:首页 > 单片机 > 单片机
[导读]void MiniBalance_PWM_Init(u16 arr,u16 psc){RCC->APB1ENR|=1ARR=arr;//设定计数器自动重装值TIM3->PSC=psc;//预分频器不分频TIM3->CCMR2|=6

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

}

}


1.

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’。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭