int main(){
//Включем порт А
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
//Включаем Таймер 2
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
GPIO_InitTypeDef PORT;
// Настроим ногу (PA1) к которой подключен сервопривод
PORT.GPIO_Pin = (GPIO_Pin_1);
// Будем использовать альтернативный режим а не обычный GPIO
PORT.GPIO_Mode = GPIO_Mode_AF_PP;
PORT.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &PORT);
// Разрешаем таймеру использовать ногу PA1 для ШИМа
TIM2->CCER |= (TIM_CCER_CC2E);
TIM2->CCMR1|= (TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2);
// Настраиваем предделитель чтобы частота ШИМа была 50 Гц
// Частота шины 48МГц
TIM2->PSC = 3750; // 48000000 / (256 * 50)
TIM2->ARR = 255; // Восьмибитное заполнение
//Запускаем таймер
TIM2->CR1 |= TIM_CR1_CEN;
// Выставляем половину
TIM2->CCR2 = 127;
while(1);
}