aigo 发表于 2023-11-22 13:30:14

江湖救急STC8H1K17 打开串口2单片机会重启

STC8H1K17单片机,2个串口公用定时器2,都是115200波特率


休眠前关闭串口2,唤醒后开启串口2,每次开启串口2都会自动单片机重启!



void Wifi_Off(void)
{
        S2CON= 0x00;                //关闭串口2接收                       
        IE2 = 0x00;             //关闭串口2中断                               
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        IO_Wifi_On_Off=1;    //WIFI关闭
        P1M0 |= 0x03;
        P1M1 |= 0x03;       
        IO_Wifi_Tx=0;         //置0省电
        IO_Wifi_Rx=0;       //置0省电
       
        Wifi_Timer=0;
        Wifi_Tx_Count=0;                                                               
        Wifi_Fun_Cmd=0;                                                               
        Wifi_Tx_Cmd=0;                                                                                       
        Wifi_Tx_En=0;
        Wifi_Off_En=0;
        Wifi_Reset_Count=0;
        Dev_Sleep_En&=(~WIFI_FUN_EN_BIT);   //容许休眠
}



void Wifi_On(uchar cmd) //WIFIģʽ
{       

        if(IO_Wifi_On_Off)
        {
                Dev_Sleep_En|=WIFI_FUN_EN_BIT;   //禁止休眠
                Wifi_Timer=0;
                Wifi_Tx_Count=0;                                                               
                Wifi_Tx_Cmd=0;                                                                                       
                Wifi_Tx_En=0;
                Wifi_Fun_Cmd=cmd;                                                               
                Wifi_Off_En=0;
                Wifi_Reset_Count=0;
               
                P1M0 &= 0xFC;            //双向口
                P1M1 &= 0xFC;                   //双向口
                IO_Wifi_Tx=1;
                IO_Wifi_Rx=1;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                S2CON =0x10;               //开启2接收
                IE2 = 0x01;                 //开启串口2中断       
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                IO_Wifi_On_Off=0;    //WIFI工作
        }
}


每次开启都会重启单片机


乘风飞扬 发表于 2023-11-22 19:05:00

开始时打开了串口2中断,串口2中断函数写了没有?
另外休眠唤醒过程的电压测一下,看是否稳定。

sujingliang 发表于 2023-11-25 08:50:58

系统复位分为硬件复位和软件复位:
1、硬件复位:
1)上电复位
2)低压复位
3)复位脚复位
4)看门狗复位
2、软件复位:
1)WDT_CONTR看门狗控制寄存器
2)IAR_CONTR IAR控制寄存器
3)RSTCFG 复位配置寄存器

没有串口复位{:dizzy:}。难道单片机是通过串口供电工作的。{:sweat:}

123 发表于 2023-11-26 17:16:36

串口2的中断入口去哪了? 重启可能是程序跑飞。
页: [1]
查看完整版本: 江湖救急STC8H1K17 打开串口2单片机会重启