main 发表于 2023-4-13 17:53:02

怎样区分上电复位还是看门狗复位软件复位等等?

其他某单片机有上电复位标志,看门狗复位标志等等。

STC好像没有这种标志。
我是根据RAM上电时是“随机”状态,判断是否是某个特殊的值来判断是否是某种复位。
但“随机”概率,也会有可能正好碰上这个特殊值,即使是1/65536也是有缺陷的。(我会把这个值定为4个字节,但无论多少字节,也是有碰上概率的。)
在不增加硬件成本情况下,靠程序好像没有办法避免。

乘风飞扬 发表于 2023-4-13 19:17:27

可以通过看门狗溢出标志来判断是否看门狗溢出导致的复位:

    if(WDT_CONTR & 0x80)
    {
      printf("Watchdog reset.temp=%u\r\n",temp);
    }
    else
    {
      printf("Power On reset.temp=%u\r\n",temp);
    }详情参考附件例程
页: [1]
查看完整版本: 怎样区分上电复位还是看门狗复位软件复位等等?