定时器中断和串口
功能说明:通过定时器3产生1秒的中断,(1)在中断函数中让开发板小灯闪烁,证明程序正常运行;
(2)在定时器中断函数中设置一个static变量,在中断来之
后,自动加1,且把变量值通usart发送到串口;
 基础知识:
  1.stm32通用定时器,16位预分频和自动重装载。
2.RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
打开定时器的时钟源。
3.其他的知识可以借助数据手册和网络得到,这里就不过多阐述。
1.main函数
int main(void)
{		 
	delay_init();	    	 //延时函数初始化	  
	NVIC_Configuration(); 	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(9600);	 //串口初始化为9600
 	LED_Init();	      //LED端口初始化
	TIM3_Int_Init(9999,7199);//延时1秒  
    //说明:1s = (9999+1) * (7199+1)/72M 
    //1.(7199+1)/72M 当stm32工作在72M时,每秒中跳动72M,通过分频,每秒钟跳动10000;
    //2.(9999+1)=10000,刚好1秒     
   	while(1)
	{
			   
	}
/****************timer.c文件*********************/
//定时器3中断服务程序
void TIM3_IRQHandler(void) //TIM3中断
{
  static u16 time=0;
  if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
  {
  TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
  time++;
  printf("时间 =%d\r\n",time); 
  LED0=!LED0;
  }
}
    
}
}
                    
                
                
            
        
浙公网安备 33010602011771号