#include"stm32f10x.h"
uint8_t GetDataCnt;
uint8_t GetData;
uint8_t TimDataCnt;
uint8_t TimData;
extern void USART1_Configuration (void);
void delay(uint32_t j)
{
uint32_t m,n;
for(n=j;n>0;n--)
for(m=7200;m>0;m--);
}
void TIM2_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
TIM_TimeBaseStructure.TIM_Period = 55530;
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
//TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清中断标志位
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); //使能中断
//TIM_ARRPreloadConfig(TIM3, DISABLE); //禁止ARR预装载缓冲器
TIM_Cmd(TIM2,ENABLE); //开启定时器
}
void TIM2_NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
/* Enable the TIM2 global Interrupt */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void TIM2_IRQHandler(void)
{
TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清中断标志位
if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //确认是否接收到数据
{
TimDataCnt++;
if(TimDataCnt == 50)
{
led_off(); //GPIO_SetBits(GPIOE,GPIO_Pin_2);
}
else if(TimDataCnt == 100)
{
//
TimDataCnt=0;
}
}
}
int main()
{
// uint8_t a='A',b='B',c='C';
GPIO();
TIM2_Configuration();
TIM2_NVIC_Configuration();
led_on(); // GPIO_ResetBits(GPIOE,GPIO_Pin_2);
}
|