wlcxrtnk 发表于 2025-5-6 16:34:29

复位后,读取芯片唯一身份证ID错误

从单片机STC12C5A60S2中读取芯片唯一身份证ID时,在上电复位后读取的正确,可是在看门狗复位或者热复位后读取的错误,不知什么原因



MOV   R0,#0F7H               ;芯片唯一ID的最低字节
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA7
             MOVX    @DPTR,A

             MOV   R0,#0F6H               ;
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA6
             MOVX    @DPTR,A

             MOV   R0,#0F5H
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA5
             MOVX    @DPTR,A

             MOV   R0,#0F4H               ;
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA4
             MOVX    @DPTR,A

             MOV   R0,#0F3H               ;
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA3
             MOVX    @DPTR,A

             MOV   R0,#0F2H               ;
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA2
             MOVX    @DPTR,A

             MOV   R0,#0F1H               ;芯片唯一ID的最高字节
             MOV   A,@R0
             MOV   DPTR,#ID_NUM_DA1
             MOVX    @DPTR,A

ercircle 发表于 2025-5-6 16:48:36

上传工程看看

ercircle 发表于 2025-5-6 17:49:03

和这个帖子可能遇到的是同样问题。
https://www.stcaimcu.com//forum.php?mod=viewthread&tid=10053&highlight=STC12C5A60S2&page=1&extra=#pid98676

DebugLab 发表于 2025-5-6 23:03:47

上电复位是从系统ISP区运行,RAM中的ID是系统区的固件在上电瞬间写入的,其他的复位方式没有运行系统区的固件,或程序运行中被修改,RAM可能是随机数
建议从只读SFR中读CHIPID,没有CHIPID的型号到FLASH里读ID(程序结尾7字节)
页: [1]
查看完整版本: 复位后,读取芯片唯一身份证ID错误