zoukankan      html  css  js  c++  java
  • 【GMT43智能液晶模块】例程十一:通用定时器实验——定时点亮LED

    实验原理:

      通过STM32的一个GPIO口来驱动LED灯,设定GPIO为推挽输出模式,采用灌电流的方式与LED连接,

    输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3实现500ms定时,每500ms变换一次LED的状态。

    示例截图:

    源代码下载链接:

    链接:https://pan.baidu.com/s/1eTSNL54 密码:1ypb

    GMT43购买链接:

    核心代码:

    static int initialize(void)
    {
    	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    	NVIC_InitTypeDef NVIC_InitStructure;
    
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);                       
    
    	TIM_TimeBaseInitStructure.TIM_Period = 4999;                               
    	TIM_TimeBaseInitStructure.TIM_Prescaler = 8399;                             
    	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;                 
    	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;            
    	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
    
    	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);                             
    	
    	NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
    	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;
    	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
    	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
    	NVIC_Init(&NVIC_InitStructure);
    
    	return 0;
    }
    
    void TIM3_IRQHandler(void)
    {
    	static int timer_counter = 0;
    	
    	if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)
    	{ 
    		if(timer_counter % 2 == 0){
                      LED_OFF;
    		}else{
    			LED_ON;
    		}
    	}else{
    		LED_OFF;
    	}
    	timer_counter ++;
    	TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
    }
  • 相关阅读:
    猫眼 top_100 爬取 ___只完成了第一页
    内涵段子——脑筋急转弯——spider
    django 常用 详解
    获取定位信息
    对AFNetworking的二次封装
    对UIImageView+WebCache的封装
    CoreText 实现图文混排
    剖析RAC中的@weakify、@strongify
    实现点击按钮旋转动画
    java面向对象编程思想的理解
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/8310124.html
Copyright © 2011-2022 走看看