找回密码
 立即注册
查看: 270|回复: 4

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

[复制链接]

该用户从未签到

2

主题

0

回帖

18

积分

新手上路

积分
18
发表于 2023-11-22 13:30:14 | 显示全部楼层 |阅读模式
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工作
        }
}


每次开启都会重启单片机


回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 145 天

    [LV.7]常住居民III

    27

    主题

    1361

    回帖

    4231

    积分

    论坛元老

    积分
    4231
    发表于 2023-11-22 19:05:00 | 显示全部楼层
    开始时打开了串口2中断,串口2中断函数写了没有?
    另外休眠唤醒过程的电压测一下,看是否稳定。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 175 天

    [LV.7]常住居民III

    13

    主题

    244

    回帖

    911

    积分

    高级会员

    积分
    911
    发表于 2023-11-23 09:59:08 | 显示全部楼层
    结果咋样?解决没?很想学习下,自己从来没遇到这种情况。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 173 天

    [LV.7]常住居民III

    14

    主题

    53

    回帖

    790

    积分

    高级会员

    积分
    790
    发表于 2023-11-25 08:50:58 | 显示全部楼层
    系统复位分为硬件复位和软件复位:
    1、硬件复位:
    1)上电复位
    2)低压复位
    3)复位脚复位
    4)看门狗复位
    2、软件复位:
    1)WDT_CONTR看门狗控制寄存器
    2)IAR_CONTR IAR控制寄存器
    3)RSTCFG 复位配置寄存器

    没有串口复位。难道单片机是通过串口供电工作的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情

    4 小时前
  • 签到天数: 124 天

    [LV.7]常住居民III

    13

    主题

    47

    回帖

    1086

    积分

    金牌会员

    积分
    1086
    发表于 2023-11-26 17:16:36 | 显示全部楼层
    串口2的中断入口去哪了? 重启可能是程序跑飞。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-21 14:02 , Processed in 0.059718 second(s), 44 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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