标题: 单片机程序在加继电器通电后出现的问题,在else里出不来了 [打印本页]

作者: R00kie    时间: 2020-5-9 09:23
标题: 单片机程序在加继电器通电后出现的问题,在else里出不来了
我做了一个智能门锁,下面将贴出出现问题的程序段
没接继电器之前程序运行时一切正常的。在接入继电器后(PA5、GND,继电器自己通过电源供电,通过GND与stm32共地,PA5发出高低电平指示继电器开断),程序执行异常。

求解是什么原因!


作者: R00kie    时间: 2020-5-9 09:24
void Status_Refresh(void)                                                                                                       
{
                if(Locked)                                                                                                                                                                                                                        //上锁状态
                {
                        LCD1602_I2C_DISPLAY_STRING(1,"     Locked     ");                                                                //上锁时 显示Locked ,Psw  or  Fpt等待输入密码解锁
                        LCD1602_I2C_DISPLAY_STRING(2,"  Psw  or  Fpt  ");
                        LOCK_ON;
                        LED_OFF;
                }
                else                                                                                                                                                                                                                                                //开锁状态
                {
                        LCD1602_I2C_DISPLAY_STRING(1,"Already Unlocked");                                                                        //开锁时  显示AlreadyUnlcoked, WELCOME
                        LCD1602_I2C_DISPLAY_STRING(2,"  WELCOME! :)   ");
                        Unlock_7s();                                                                                                                                                                                                        //开锁7秒,再上锁
                        LED_ON ;
                        delay_ms(20);
                        Locked = 1;                                               
                        Fpt_Pass = 0;                                                                                                                                                                                                        //        清除进入方式标记
                        Psw_Pass = 0;
                }
}
作者: R00kie    时间: 2020-5-9 09:30
这个程序在各初始化完成后的while(1)死循环中不断执行,按说Locked=0解锁后会开锁7秒后,再将Locked赋成0,LCD会显示7秒“已开锁,欢迎”后,重新显示“已上锁,密码/指纹” ,在继电器接入电源之前也确实是这样完美执行的。但在继电器接入电源后,一直显示“已开锁,欢迎”, 且LED常亮。  因此我判断是在else里一直没出来 ,但不知道什么原因。   求解!
作者: xu1234567890    时间: 2020-5-9 11:44
原理图截图看看




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1