baozoudexcd 发表于 2023-11-30 16:16:32

STC8H3K64S4单片机ID读取错误

使用STC8H3K64S4单片机,该单片机没有CHIPID寄存器,因此,采用从ROM中读取ID的方式,代码如下所示。采用下面中的代码读取ID,大部分时候可以正确读取,但是会有偶发性读取错误。读取错误时,读到的全部为FF。并且读取错误故障发生后,会一直读取错误,反复上下电依然会读取错误。只有重新烧写程序,才会正确读取。求大神指导!!!!


void Password_Check()
{
      u8* Id_Ptr;
      u8 Id_Code;
      extern u8 Password_Frame_ID[];
      

      
      //打开XFR
      EAXSFR();


      
      //初始化ID指针
      Id_Ptr = (u8 code*)0xFDF9;
      
      //读取ID
      for(i=0;i<7;i++)
      {
                Id_Code = Id_Ptr;
                Password_Frame_ID = Id_Ptr;
      }
      
      //关闭XFR
      EAXRAM();
}

乘风飞扬 发表于 2023-11-30 19:18:26

烧录附件的例程试试

baozoudexcd 发表于 2023-12-1 14:46:40

乘风飞扬 发表于 2023-11-30 19:18
烧录附件的例程试试

感谢指导,问题已解决,我的EEPROM大小设置为1k,在擦除EEPROM的0~511部分时,会将ID擦掉。ROM里面的ID在使用时,要注意与EEPROM地址是否会重合。
页: [1]
查看完整版本: STC8H3K64S4单片机ID读取错误