cnos 发表于 2025-2-19 12:45:23

擎天柱AI8051U均衡写入EEPROM,延长EEPROM寿命(EEPROM大小÷(数据长度+6))倍。

例程使用串口调试,串口切换到P3.6和P3.7。
单片机工作频率22.1184MHz。波特率115200.

数据组织形式:
包头+校验和+数据
包头=FF 00 55 AA,校验和就是数据累加值,取低16位。

开机先弹出菜单:


接收←System on!
      1.Read||2.Write||3.Erase||4.Search pack||5.Restore pack
      6.Modify pack||7.Show EP_Data arry||8.Show ALL EEPROM DATA||?.Show menu



发送→8 先把当前EEPROM的数据显示一遍。
接收←刚刷机,EEPROM全空。
      Address 0x0000:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0010:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0020:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0030:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0040:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0050:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0060:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0070:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0080:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0090:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00A0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00B0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00C0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00D0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00E0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00F0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0100:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0110:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0120:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0130:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0140:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0150:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0160:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0170:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0180:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0190:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01A0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01B0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01C0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01D0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01E0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01F0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,



发送→4 搜索数据包
接收←Searching...
      Pack not found,default data loaded.

      没存过,找不到,读取默认数据。


发送→5 保存数据包
接收←Restore pack.
      Found space at 0x0000.Prepare data...Data in arry is:
      在0x000处找到连续的足够空间并存入。
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      包头 包头 包头 包头   校验和    数据,数据,数据,数据,数据,数据,数据....................

      Pack restored.


发送→8 把当前EEPROM的数据显示一遍。
接收←在0x000处看到数据。

      Address 0x0000:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0010:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0020:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0030:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0040:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0050:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0060:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0070:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0080:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,


发送→5 保存数据包
接收←Restore pack.
      Found space at 0x0016.Prepare data...Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Pack restored.
      
发送→5 保存数据包
接收←Restore pack.
      Found space at 0x002C.Prepare data...Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Pack restored.
      
发送→8 把当前EEPROM的数据显示一遍。可以看到依次向后存储。
接收←
      Address 0x0000:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0010:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,
      Address 0x0020:0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,
      Address 0x0030:0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
      Address 0x0040:0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0050:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0060:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,






发送→5 保存多次,直至存满
接收←Restore pack.
      Found space at 0x01E4.Prepare data...Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Pack restored.
      
发送→8 EEPROM 已写满
接收←
      Address 0x0000:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0010:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,
      Address 0x0020:0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,
      Address 0x0030:0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
      Address 0x0040:0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
      Address 0x0050:0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,
      Address 0x0060:0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,
      Address 0x0070:0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,
      Address 0x0080:0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,
      Address 0x0090:0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,
      Address 0x00A0:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Address 0x00B0:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x00C0:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,
      Address 0x00D0:0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,
      Address 0x00E0:0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
      Address 0x00F0:0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
      Address 0x0100:0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,
      Address 0x0110:0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,
      Address 0x0120:0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,
      Address 0x0130:0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,
      Address 0x0140:0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,
      Address 0x0150:0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Address 0x0160:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0170:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,
      Address 0x0180:0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,
      Address 0x0190:0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
      Address 0x01A0:0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
      Address 0x01B0:0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,
      Address 0x01C0:0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,
      Address 0x01D0:0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,
      Address 0x01E0:0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,
      Address 0x01F0:0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,






cnos 发表于 2025-2-19 12:56:35

发送→4 搜索数据包
接收←Searching...
      Found pack at 0x01E4.在此地址找到最后一次保存的数据包。
      Reading data...读取数据包
      Data in arry is:显示数据包
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Checking data...检查数据包
      Data ok.数据包没问题

发送→5 保存数据包
接收←Restore pack.
      No space founded,erease eeprom...由于整个EEPROM已经写满了,所以没有足够的空间来存数据包,擦除EEPROM一次
      Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Pack restored.
      数据包已保存
发送→4 搜索数据包
接收←Searching...
      Found pack at 0x0000.写入位置已回到EEPROM最前面
      Reading data...
      Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
      Checking data...
      Data ok.

发送→8 查看EEPROM
接收←
      Address 0x0000:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0010:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0020:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0030:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0040:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0050:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0060:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0070:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0080:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0090:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00A0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00B0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00C0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00D0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00E0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x00F0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0100:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0110:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0120:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0130:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0140:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0150:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0160:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0170:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0180:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0190:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01A0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01B0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01C0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01D0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01E0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x01F0:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,


发送→6 修改数据包内容
接收←Please input 16 bytes data:输入16字节新数据。数据长度程序里面宏定义可以改
发送→3
发送→U
发送→?
发送→?
发送→?
发送→
发送→3
发送→U
发送→?
发送→?
发送→?
发送→
发送→3
发送→U
发送→?
发送→?
接收←ok数据接收完毕
      Data in arry is:
      0xFF,0x00,0x55,0xAA,0x00,0x78,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,
发送→5 保存数据包
接收←Restore pack.
      Found space at 0x0016.Prepare data...Data in arry is:
      0xFF,0x00,0x55,0xAA,0x0A,0x73,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,
      Pack restored.

发送→8 查看EEPROM数据
接收←
      Address 0x0000:0xFF,0x00,0x55,0xAA,0x00,0x78,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
      Address 0x0010:0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0x00,0x55,0xAA,0x0A,0x73,0x33,0x55,0xAA,0xF7,
      Address 0x0020:0xFD,0xFF,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,0xFF,0xFF,0xFF,0xFF,
      Address 0x0030:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
      Address 0x0040:0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

发送→4 搜索数据包

接收←Searching...
      Found pack at 0x0016.
      Reading data...
      Data in arry is:
      0xFF,0x00,0x55,0xAA,0x0A,0x73,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,0xFD,0xFF,0x33,0x55,0xAA,0xF7,
      Checking data...
      Data ok.

特别注意:
我发现设置用户EEPROM大小不能小于2K,否则就出问题了。暂时不明原因。即便程序里面用512字节,但是设置的时候还是要设置2K以上,不知为什么。

vb2002 发表于 2025-2-25 00:27:09

大佬牛逼,先点赞再看代码.{:4_250:}

ysw 发表于 2025-2-25 11:04:29

如果要存入的数据凑巧和包头一样,这个还能正常处理吗?

cnos 发表于 2025-2-25 11:54:16

ysw 发表于 2025-2-25 11:04
如果要存入的数据凑巧和包头一样,这个还能正常处理吗?

自己优化一下,在数据包里面找到包头,后面校验包就肯定不通过,你再往回找一个包头,直到数据校验通过了就行了。

ysw 发表于 2025-2-25 12:41:44

我有一个想法不知道是否可行。就是用每一个字节的最高位D7作为是否未使用的标志,剩余D0~D6共7位用来保存数据,只不过每个字节保存的数据不能超过127(0x7F),超过就要用两个或者多个字节来存储。存入之前数据要处理一下,读出也要处理。因为初始数据都是0xFF,最高位都是1,就是未使用的,保存过数据的字节最高位就变成0了,这样查找应该很方便。

daybeen 发表于 2025-2-25 13:50:19

ysw 发表于 2025-2-25 12:41
我有一个想法不知道是否可行。就是用每一个字节的最高位D7作为是否未使用的标志,剩余D0~D6共7位用来保存数 ...

这个要根据你的数据的特点来处理,只要自己处理好逻辑就行,需要考虑一个是占据的空间是否太大,二是搜索计算时间是否过长,三是如何判断数据有效

yefeng 发表于 2025-3-5 22:32:15

你这都是写定长数据,不定长我觉得还是得考虑上链表

cnos 发表于 2025-3-7 22:55:54

yefeng 发表于 2025-3-5 22:32
你这都是写定长数据,不定长我觉得还是得考虑上链表

要有较复杂需求就干脆上文件系统了,fat不香吗。
这种情况就是用最低的代价满足80-90%的需求。

ryhyc 发表于 2025-8-17 10:53:31

楼主好!这个可以在stc32g12k128上面直接使用吗?如果不行,需要改动哪里?学习了!
页: [1] 2
查看完整版本: 擎天柱AI8051U均衡写入EEPROM,延长EEPROM寿命(EEPROM大小÷(数据长度+6))倍。