ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
298512
sinsay (12.01.2012 00:30, просмотров: 8710)
Вопрос по генерацию ШИМ у STM32F100 Если у меня значение периода ШИМ равно значению импульса (т.е. импульс заполняет весь период ), на выходе с ноги МС у меня получается не прямая линия равная величине питания, а в конце каждого периода очень короткие импульсы до нуля. Код конфигурация таймера 2 в ШИМ режим Сконфигурировал ножки RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period = 10000; // Период ШИМ TIM_TimeBaseStructure.TIM_Prescaler = 2; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //--------------- Channel 1, 2,3 and 4 Configuration in PWM mode -------------------- // PWM1 Mode configuration: Channel1 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 10000; // Ширина имульса заполнения TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_Cmd(TIM2, ENABLE); Как можно избавиться от этого эффекта? Когда устанавливаю ширину импульса равной 0, TIM_OCInitStructure.TIM_Pulse = 0; // Ширина имульса заполнения то на выходе четкий ноль без импульсов. Подскажите в чем может быть причина?