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);  //清楚中断标志位
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值