Код: Выделить всё
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_tim.h"
void Init_LED(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void Init_Timer(void)
{
TIM_TimeBaseInitTypeDef Timer;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
TIM_TimeBaseStructInit(&Timer);
Timer.TIM_Prescaler = SystemCoreClock / 1000 - 1;
Timer.TIM_Period = 1000;
TIM_TimeBaseInit(TIM4, &Timer);
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM4, ENABLE);
NVIC_EnableIRQ(TIM4_IRQn);
}
void TIM4_IRQHandler()
{
GPIOA->ODR ^= GPIO_Pin_0;
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
}
int main(void)
{
Init_LED();
Init_Timer();
while(1)
{
}
}
