|
#include"stm32f10x.h"
#include"stm32f10x_gpio.h"
#include"stm32f10x_rcc.h"
#include"stm32f10x_tim.h"
#include"delay.h"
void RCC_Configuration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOD,&GPIO_InitStructure);
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
}
void TIM3_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIMEBaseInitStructure;
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
TIMEBaseInitStructure.TIM_Period=2000;
TIMEBaseInitStructure.TIM_Prescaler=35999;
TIMEBaseInitStructure.TIM_ClockDivision=0;
TIMEBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3,&TIMEBaseInitStructure);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3,ENABLE);
}
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void TIM3_IRQHandler(void)
{
if(GPIO_ReadOutputDataBit(GPIOD,GPIO_Pin_7)==Bit_RESET)
{
//LED 熄灭
GPIO_SetBits(GPIOD,GPIO_Pin_7);
}
else
{
//LED 发光
GPIO_ResetBits(GPIOD,GPIO_Pin_7);
}
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
TIM3_Configuration();
NVIC_Configuration();
while(1);
}
新手学习,没有一个程序一次成功过,真伤心! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|