找回密码
 立即注册
查看: 267|回复: 2

8H1K08上电,外设初始化完之后打印复位标志寄存器(RSTFLAG)的值

[复制链接]

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-12-21 11:49:35 | 显示全部楼层 |阅读模式

image.png

image.png
image.png

image.png

image.png

想知道为什么上电就会有看门狗复位标志和代码区溢出标志

按照手册说明,RSTFLAG上电读出来的值应该是0x14,我读出来的值却是0x1A

我有使用了看门狗,但是我24M的主频,设置了256分频,喂狗时间间隔为40ms,理论上不会溢出才对

使用其他评论区提供的工程直接测试

void main()
{
P_SW2 |= 0x80; //扩展寄存器访问使能

UartStdOutInit();

printf("Start!!!\r\n");
printf("RSTFLAG %bx\r\n",RSTFLAG);
if(RSTFLAG & 0x10)  //LVDRSTF
{
    RSTFLAG |= 0x10;    //写1清除标志位
    printf("LVD reset\r\n");
}
if(RSTFLAG & 0x08)  //WDTRSTF
{
    RSTFLAG |= 0x08;    //写1清除标志位
    printf("Watchdog reset\r\n");
}
if(RSTFLAG & 0x04)  //SWRSTF
{
    RSTFLAG |= 0x04;    //写1清除标志位
    printf("Software reset\r\n");
}
if(RSTFLAG & 0x02)  //ROMOVF
{
    RSTFLAG |= 0x02;    //写1清除标志位
    printf("ROM Overflow reset\r\n");
}
if(RSTFLAG & 0x01)  //EXRSTF
{
    RSTFLAG |= 0x01;    //写1清除标志位
    printf("External reset\r\n");
}

// WDT_CONTR = 0x23; //使能看门狗,溢出时间约为0.5s
//WDT_CONTR = 0x24; //使能看门狗,溢出时间约为1s
// WDT_CONTR = 0x27; //使能看门狗,溢出时间约为8s

// temp = 123;
while (1)
{
// WDT_CONTR |= 0x10; //清看门狗,否则系统复位
}
}

image.png

image.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2024-12-21 22:35:00 | 显示全部楼层
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

21

主题

38

回帖

402

积分

中级会员

积分
402
发表于 2024-12-22 11:59:10 | 显示全部楼层

应该不是这个问题,我的料号是比较早的,那时候还没有AI8051,而且我的寄存器是能读到值的
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 06:47 , Processed in 0.264782 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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