STM32定时器中断

STM32F4定时器中断

设计实现简单计时和秒表

硬件资源:
1) 定时器 TIM3
2)按键key(1,2,3……)

//tim3中断服务函数
void TIM3_IRQHandler(void)
{
	if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断
	{
		usecond++;//秒的下一级
		//usecond==?根据初始化设置及自己的需要赋值
		if(usecond==100){
			second++;//秒自加1
			usecond=0;//置零重新计时
			
		}if(second==60){
			min++;//分自加1
			second=0;//置零重新计时
			
		}
		if(min==60){
			hour++;//时自加1
			min=0;//置零重新计时
		}
		if(hour==24){
		//hour满24,hour,min,second,usecond全部置零重新计时
			hour=0;
			min=0;
			usecond=0;
			second=0;
		}
		printf("%d:%d:%d:%d\r\n",hour,min,second,usecond);
		到此打开串口助手会看到计时输出
		/加如下判断及key实现秒表功能
		// KEY_Scan(0):0表示不支持连续按键;1表示支持;(建议不支持)
		//KEY_Scan(0)函数开发板自带资源的Key.c中有
		//KEY_Scan(0) == 1,2,3,4不同的值表示不同的按键,这里用的是key1
		//每按key1一次串口助手显示一个时间
		复位键重新计时
		/添加如下代码使用需注释上面的printf("%d:%d:%d:%d\r\n",hour,min,second,usecond);输出,方便查看结果
		if(	 KEY_Scan(0) == 1){
			printf("%d:%d:%d:%d\r\n",hour,min,second,usecond);
		}
		//复位键重新计时,
	}
	TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清楚中断标志位
}

你可能感兴趣的:(stm32f4,定时器实现简易计时及秒表)