微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于STC12C5A60S2的EEPROM第二扇区求助

关于STC12C5A60S2的EEPROM第二扇区求助

时间:10-02 整理:3721RD 点击:
STC12C5A60S2,分别把第一组数据和第二组数据分别放在EEPROM的第一扇区(0x0000)和第二扇(0x0200),IAP程序是严格按照官方手册写的,为什么第一扇区正常存取,面第二扇区却不能存取(严格的说是根本就没法写入),请高手帮我看一下,非常感谢!

  1. uchar data bht[4];//用于储存第一组数据的值(0~3一共4个)
  2. char data hms[9];//用于储存第二组数据的值(0~8一共9个)
  3. uint code E_bhtaddr[]={0x0000,0x0001,0x0002,0x0003};//存第一组数据的值在eeprom中的地址
  4. uint code E_hmsaddr[]={0x0200,0x201,0x202,0x203,0x204,0x205,0x206,0x207,0x208};//存第二组数据的值在eeprom中的地址
  5. //*******************************读取存第一组数据的值函数*****************************
  6. void Eeprom_Rbht()
  7. {
  8.         uchar i;
  9.         for(i=0;i<4;i++)
  10.         {
  11.                 bht[i]=Byte_read(E_bhtaddr[i]);
  12.                 if(bht[i]<1|bht[i]>60)bht[i]=25;
  13.         }
  14. }
  15. //*******************************储存存第一组数据的值函数*****************************
  16. void Eeprom_Wbht()
  17. {
  18.         uchar i;
  19.         Sector_Erase(0x0000);
  20.         for(i=0;i<4;i++)
  21.         {
  22.                 Byte_write(E_bhtaddr[i],bht[i]);
  23.         }
  24. }
  25. //*******************************读取存第二组数据的值函数*****************************
  26. void Eeprom_Rhms()
  27. {
  28.         uchar i;
  29.         for(i=0;i<9;i++)
  30.         {
  31.                 hms[i]=Byte_read(E_hmsaddr[i]);
  32.                 if(hms[i]<0|hms[i]>60)hms[i]=20;
  33.         }
  34. }
  35. //*******************************储存存第二组数据的值函数*****************************
  36. void Eeprom_Whms()
  37. {
  38.         uchar i;
  39.         Sector_Erase(0x200);
  40.         for(i=0;i<9;i++)
  41.         {
  42.                 Byte_write(E_hmsaddr[i],hms[i]);
  43.         }
  44. }

复制代码



已退回1积分

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top