复位标志,如何查找单片机的复位标志
复位标志,如何查找单片机的复位标志
各位老师好,单片机复位了,想查找一下是什么方式的复位该怎么处理呢?
看手册上有 RSTFLAG,该如何使用该寄存器来查找复位原因呢?
复位了之后这个寄存器会保存以前的值么?
STC8H系列 数据手册https://www.stcai.com/filedownload/721074
国学芯用 发表于 2023-8-3 09:05
STC8H系列 数据手册https://www.stcai.com/filedownload/721074
我的单片机莫名其妙的复位了,我想看一下是什么情况导致的复位,可以查询这个 RSTFLAG 这个寄存器里的标志进行判断原因么?如果能如何来做这段程序?麻烦高手给个思路或者方法,给出程序更好,我搞的下面一段貌似不行啊,看门狗重启后并没有打印数据出来到电脑上
if( RSTFLAG & 0x10 )
{
Show_Str(20,20,RED,BLACK, "LVDRST",16,1); //低压复位,上电置 1:ok
printf("RSTFLAG = LVDRST \n ");
}
else if( RSTFLAG & 0x08 )
{
//Show_Str(20,20,RED,BLACK, "WDTRST",16,1); //看门狗复位
printf("RSTFLAG = WDTRST \n ");
}
else if( RSTFLAG & 0x04 )
{
Show_Str(20,20,RED,BLACK, "SWRST",16,1);
printf("RSTFLAG = SWRST \n ");
}
else if( RSTFLAG & 0x02 )
{
Show_Str(20,20,RED,BLACK, "ROMOVRST",16,1);
printf("RSTFLAG = ROMOVRST \n ");
}
else if( RSTFLAG & 0x01 )
{
Show_Str(20,20,RED,BLACK, "EXRST",16,1);
printf("RSTFLAG = EXRST \n ");
}
else ; 13668840876 发表于 2023-8-3 11:09
我的单片机莫名其妙的复位了,我想看一下是什么情况导致的复位,可以查询这个 RSTFLAG 这个寄存器里的标 ...
用附件例程试试
乘风飞扬 发表于 2023-8-3 11:18
用附件例程试试
我是想直接读取 RSTFLAG 内部的标志位来区分何种原因导致了复位,复件的例程好像不太配呢。
我就试验上电复位成功了,当上电初始化里不去清零 LVDRSTF 时,串口可以打印出相关信息。
当上电初始化里清零 LVDRSTF ,主程序里不清看门狗时也导致复位,但是 串口打印不出来相关信息,不知道是怎么回事呢?
13668840876 发表于 2023-8-3 11:48
我是想直接读取 RSTFLAG 内部的标志位来区分何种原因导致了复位,复件的例程好像不太配呢。
我就试验上电 ...
通过读取RSTFLAG标志来判断也是可以的。
不过需要注意RSTFLAG是扩展寄存器,访问前需要开启扩展寄存器访问使能。
if(RSTFLAG & 0x10)//LVDRSTF
{
RSTFLAG |= 0x10; //写1清除标志位
printf("LVD reset.temp=%u\r\n",temp);
}
if(RSTFLAG & 0x08)//WDTRSTF
{
RSTFLAG |= 0x08; //写1清除标志位
printf("Watchdog reset.temp=%u\r\n",temp);
}
if(RSTFLAG & 0x04)//SWRSTF
{
RSTFLAG |= 0x04; //写1清除标志位
printf("Software reset.temp=%u\r\n",temp);
}
if(RSTFLAG & 0x02)//ROMOVF
{
RSTFLAG |= 0x02; //写1清除标志位
printf("ROM Overflow reset.temp=%u\r\n",temp);
}
if(RSTFLAG & 0x01)//EXRSTF
{
RSTFLAG |= 0x01; //写1清除标志位
printf("External reset.temp=%u\r\n",temp);
}
乘风飞扬 发表于 2023-8-3 13:13
通过读取RSTFLAG标志来判断也是可以的。
不过需要注意RSTFLAG是扩展寄存器,访问前需要开启扩展寄存器访 ...
您好,我按照您的程序做了少许更改,目前测试 上电复位和看门狗复位可以正常显示相关信息,但是在做外部复位脚复位实验时输出的信息为“SWRST”,与手册上的信息不符,麻烦您那边可以确认一下么?谢谢
我的程序及相关信息如下的图片所示:
13668840876 发表于 2023-8-7 14:15
您好,我按照您的程序做了少许更改,目前测试 上电复位和看门狗复位可以正常显示相关信息,但是在做外部 ...
硬件复位,或者软件复位进入ISP区时,从ISP区进入用户程序区是通过软件复位的方式,所以软件复位标志也会被置位。
你现在用的是if...else if...方式进行判断,前面的条件符合了就不会再判断后面的条件。
建议把软件复位条件判断放到最后的else里面。 乘风飞扬 发表于 2023-8-7 17:52
硬件复位,或者软件复位进入ISP区时,从ISP区进入用户程序区是通过软件复位的方式,所以软件复位标志也会 ...
非常感谢,已完成测试 乘风飞扬 发表于 2023-8-7 17:52
硬件复位,或者软件复位进入ISP区时,从ISP区进入用户程序区是通过软件复位的方式,所以软件复位标志也会 ...
有一个疑问,,,如果是触发了看门狗复位,那么看门狗控制寄存器中的看门狗溢出标志也会置一么
页:
[1]
2