我想让TIM3产生PWM,从PB4和PB5输出,怎么不行呢,那个重定义不对,还是哪里遗漏了什么,请大师指点迷津啊,
int main(void)
{
tempkcount=0;
RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOD |RCC_APB2Periph_USART1
| RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA
| RCC_APB2Periph_AFIO| RCC_APB2Periph_GPIOE,ENABLE ) ;// ?ò???±??
// USART1_NVIC_Configuration( ); //??????NVIC????
SysTickInit();
DaoHangInit( );
ShuRuDingYi();
ShuChuDingYi();
DiBiaoInit();
TIM3_PWM_Init();
while(1)
{
GPIO_SetBits (GPIOE ,GPIO_Pin_7 ); //?èD??????0 ????????????
delays(1000);
// GPIO_ResetBits (GPIOE,GPIO_Pin_7);
// delays(1000);
}
}
void PWM_Init(void)
{ GPIO_InitTypeDef PWM_Output;
// RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO,ENABLE );
RCC_APB2PeriphClockCmd (RCC_APB1Periph_TIM3,ENABLE );//?ò???±??
//GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
PWM_Output.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //??????????±?????PB4.PB5
  WM_Output.GPIO_Mode = GPIO_Mode_AF_PP;//GPIO_Mode_Out_PP ; //??????????±??¨??
  WM_Output.GPIO_Speed = GPIO_Speed_10MHz ; //??????????????±??¨??
GPIO_Init (GPIOA,& WM_Output ); //?÷???á??????????????D??2????
// GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE); //???¨??
}
void TIM_Mode_Config(void )
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
u16 CCR1_Val=39000;u16 CCR2_Val=30000;//u16 CCR3_Val=250;u16 CCR4_Val=125;
TIM_TimeBaseStructure.TIM_Period=40000 ;//?¨?±?÷??0??????999?????????¨?±???? ???????÷?????????¨750????>100K??(355->200K)
TIM_TimeBaseStructure.TIM_Prescaler=1;//?è???¤·????????¤·??? ????36M ?ò???¨?±?÷3????1
TIM_TimeBaseStructure.TIM_ClockDivision=0;//?è???±??·????????? ??·???
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //?ò??????????
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure); //??????
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//PWM???????¨??//??????PWM1????
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=CCR1_Val;//?è????±??????±?????÷?????????????±??????·??ú??±?
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; //?±?????÷????????CCR1_Val?±????????
TIM_OC1Init(TIM3,&TIM_OCInitStructure);//?????¨??1
TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//?????¨??2
TIM_OCInitStructure.TIM_Pulse=CCR2_Val; //?è???¨??2????????±???
TIM_OC2Init(TIM3,&TIM_OCInitStructure); //?????¨??2
TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM3,ENABLE);
TIM_Cmd(TIM3,ENABLE);//?????¨?±?÷3
}
//------------------------------------
//PWM??????
//
//--------------------------------------------------------
void TIM3_PWM_Init(void)
{
PWM_Init( );
TIM_Mode_Config( );
}
我在RBT6上是做出来了的。为什么这个VET6不行呢
|