2017-08-14 10:55 PM
Hi,every,
i want to use the TIM4 to output PWM signal,but the PB_6 always keep low.Here is the code:
********************************************************************************************
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = 255; TIM_TimeBaseStructure.TIM_Prescaler = 1999; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 125; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM4, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable); TIM_CtrlPWMOutputs(TIM4,ENABLE); TIM_ARRPreloadConfig(TIM4, ENABLE); TIM_Cmd(TIM4, ENABLE);************************************************************************************
Any idea why?How to solve it?
Thinks.
#stm32f103 #pwm #tim42017-08-15 12:32 AM
i think i solved it.
SET 'GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;'
2017-08-15 02:20 AM
Hi
carlose
,Thanks for sharing the solution, this will be helpful for other users on our STM32 MCUs forum.
I advise you to have a look on TIM examples available after downloading the
package. They will help you to have a deeper understanding about the timer peripheral.Examples are found under the path below:
STM32Cube\Repository\STM32Cube_FW_F0_V1.8.0\Projects\...\Examples\TIM
Have a nice day
Khouloud.