发 帖  
原厂入驻New
发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》
[问答] 为什么led灯没有实现亮4秒后长亮?
609 STC单片机 LED
分享
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;
                }
}
1
2019-5-21 14:57:46   评论 分享淘帖 邀请回答
5个回答
将time改为全局变量。
你的程序中的time最大只能为1,因为每次中断函数结束就将time清零了。
可以用串口输出time的值就清楚问题了发生的原因
最佳答案
2019-5-21 14:57:47 2 评论

举报

2 条评论
你现在的效果是什么呢
2019-5-21 15:42:18 评论

举报

2019-5-21 15:53:01 1 评论

举报

1 条评论
  • 2019-5-22 10:50

    每次进中断led就转换状态,可不就是一直闪烁吗?难不成你想让他不闪?

使用static u8 time=0;应该可以解决问题,使用静态变量只初始化一次
2019-5-24 18:34:28 评论

举报

2019-5-30 17:02:45 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表