找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STM32单片机一进外部中断就卡死,大佬帮我看下什么原因

查看数: 4263 | 评论数: 6 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-10-25 10:00

正文摘要:

主程序 time,time2,time3由TIM1定时器提供时钟,Sys提供延时函数,TIM3提供PWM(两路) void EXTI4_IRQHandler(void) {        if(EXTI_GetITStatus(EXTI_Line4)!=RESET)//不等 ...

回复

ID:958310 发表于 2021-10-26 09:06
在中断里延时,,真有你的哦
ID:592807 发表于 2021-10-26 08:47
yzwzfyz 发表于 2021-10-25 16:10
如果你说的是真实的,则外中断后,跳入中断服务程序执行,外中断服务程序在下列情况下会死机:
1、没有写 ...

他在中断处理函数里面放了while
ID:592807 发表于 2021-10-26 08:46
在中断处理函数里面放while(),你不死机天理难容啊。人家中断处理函数要么打个标记,要么几十微秒内退出,毕竟中断要轮询,要嵌套。你直接while住,函数怎么跑。

51hei截图20211026084256.png (40.79 KB, 下载次数: 60)

51hei截图20211026084256.png
ID:123289 发表于 2021-10-25 16:10
如果你说的是真实的,则外中断后,跳入中断服务程序执行,外中断服务程序在下列情况下会死机:
1、没有写外中断服务程序,即中断后,程序就【飞】了。
2、有死等的条件语句,因条件不成立,死等出不来。
3、修改的主程序的重要参数,造成主程序发生未预期的结果。例如,主程序在等某一事件的结果,突然被外中断打断,中断服务程序又将这个事件清除了,造成中断返回后,主程序等不到事件的结果。
ID:883242 发表于 2021-10-25 13:40
EXTI4_IRQHandler里面Delay_ms(10)是用systick中断实现的吧???systick中断优先级低于exti4,所以执行到这一句永远无法进一步执行下去了。

千万不要在中断处理函数里面用delay,这是个基本原则问题。
ID:936528 发表于 2021-10-25 10:01
下面是主程序
        while(1)       
        {               
                if ( time >= 300 ) /* 10 * 1 ms = 10ms ʱ¼äµ½ */
                {
                        d=Get_Max31855();
                        TM1=d;
                        if(TM1>=92.5)
                        {
                                TM2=TM1+(TM1-92.3)*0.026;//²ÉÑù¾«¶È²¹³¥       
                        }else
                        {
                        TM2=TM1;
                        }
                        time = 0;
                }
                if ( time2 >= 1000 ) /* 1000 * 1 ms = 1s ʱ¼äµ½ */
                {
                       
                        pid.Pv=TM2;//µ±Ç°Î¶Ƞ      
                        PID_Calc(); //pid¼ÆËã       
                        Mode();//ʱ¿Ì²ì¾õÉèÖÃζȵı仯
                        time2 = 0;
                }
                if ( time3 >= 200 ) /* 10 * 1 ms = 10ms ʱ¼äµ½ */
                {
                        time3 = 0;  
                        OLED_Temp();
                }
        }         

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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