写了Timer3控制两路pwm输出驱动舵机,可是舵机不转,求大神~~
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]void TIM3_PWM_Init(u16 arr,u16 psc)
{
RCC->APB2ENR|=1<<1; //TIM1?±??????
GPIOA->CRL&=0X00FFFFFF;
GPIOA->CRL|=0XBB000000;
GPIOA->ODR|=1<<6;
GPIOA->ODR|=1<<7;
TIM3->ARR=arr;
TIM3->  SC=psc; [/mw_shl_code]
[mw_shl_code=c,true]
TIM3->CCMR1|=0x0060;
TIM3->CCMR1|=1<<3;
TIM3->CCMR1|=0x6000;
TIM3->CCMR1|=1<<11;
TIM3->CCER|=1<<0;
TIM3->CCER|=1<<4;
TIM3->CR1=0x0080;
TIM3->CR1|=0x0001;
} [/mw_shl_code]
[mw_shl_code=c,true]#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
#define LED0_PWM_VAL TIM3->CCR1
#define LED1_PWM_VAL TIM3->CCR2
void TIM3_PWM_Init(u16 arr,u16 psc);
#endif[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]int main(void)
{
uint8_t indexWave[] = {5,10,5,15,5,20,5,25},xxx=0;
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
TIM3_PWM_Init(200,7199);
LED0_PWM_VAL=5;
LED1_PWM_VAL=5;
delay_ms(5000);
while(1)
{
LED0_PWM_VAL=indexWave[xxx];
LED1_PWM_VAL=indexWave[xxx];
delay_ms(5000);
xxx++;
if(xxx==8)xxx=0;
}
}
[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
|