为什么led灯没有实现亮4秒后长亮?

2019-07-18 17:29发布

void tiM3_IRQHandler(void)   //TIM3中断
{
        u8 time;
        IF (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //检查TIM3更新中断发生与否
                {
                        LED1=!LED1;
                        TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx更新中断标志
                }
                time++;
                if(time==8)
                {
                                LED1=0;
//                                TIM_Cmd(TIM3, DISABLE);
                                time=0;
                }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Alwa_yS
1楼-- · 2019-07-18 23:09
将time改为全局变量。
你的程序中的time最大只能为1,因为每次中断函数结束就将time清零了。
可以用串口输出time的值就清楚问题了发生的原因 最佳答案
wdc596933938
2楼-- · 2019-07-19 02:41
你现在的效果是什么呢
kjwl0715
3楼-- · 2019-07-19 07:20
led一直在翻转 闪烁
莫有会
4楼-- · 2019-07-19 09:12
使用static u8 time=0;应该可以解决问题,使用静态变量只初始化一次
Amrzs
5楼-- · 2019-07-19 13:29
定义成 static u8 time

一周热门 更多>