zoukankan      html  css  js  c++  java
  • 定时器中断和串口

    功能说明:通过定时器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 ",time);
      LED0=!LED0;
      }
    }

        
    }

    	  
    }
    
      
  • 相关阅读:
    Maven版本管理
    ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口
    java常用集合框架关系
    重写equals和hashCode
    项目的继承和聚合详解
    Installation Manager1.8安装
    关于java按位操作运算
    正数负数的二进制表示
    springboot问题排解
    int和Integer有什么区别
  • 原文地址:https://www.cnblogs.com/qglddh/p/3683436.html
Copyright © 2011-2022 走看看