單片機型號:stm32f103rct6 我用定時器3的pc7口進行輸出PWM波形來控制L2898N 但是代碼調了好幾遍就是不能輸出PWM波形 有沒有大佬給我解答一下,這是為什么?代碼如下:
void PWM_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定義結構體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);//使能GPIO外設和AFIO復用功能模塊時鐘
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE); //選擇Timer3全部重映像
//選擇定時器3的通道2作為PWM的輸出引腳 GPIOC.7
TIM_DeInit(TIM3);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //復用推挽功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化引腳
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定義初始化結構體
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能定時器3時鐘
//初始化TIM3
TIM_TimeBaseStructure.TIM_Period = 9999; //自動重裝載寄存器的值
TIM_TimeBaseStructure.TIM_Prescaler =143; //TIMX預分頻的值
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //時鐘分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計數
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據以上功能對定時器進行初始化
TIM_OCInitTypeDef TIM_OCInitStructure;//定義結構體
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;//選擇定時器模式,TIM脈沖寬度調制模式2
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//輸出
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OC2Init(TIM3, &TIM_OCInitStructure);//根據結構體信息進行初始化
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能定時器TIM2在CCR2上的預裝載值
TIM_ARRPreloadConfig(TIM3,ENABLE);
TIM_Cmd(TIM3, ENABLE); //使能定時器TIM3
}
|