关于STC8G1K08-8Pin EEPROM的一些疑问
遇到的问题大致是这样的,在0X0000地址写入数据,发现0x0100,0x0200的数据会同步被0X0000的数据替换掉不知道是什么原因,希望大佬们帮忙解答一下。改任意一个数据其余的会跟着变,0X0300及以上的还没测试。
void flash_WriteByte(unsigned int Addr,unsigned int Dat)//flash写
{
IapProgram(Addr,Dat/256);
IapProgram(Addr+1,Dat%256);
}
unsignedint flash_ReadByte(unsigned int Addr)//读指定位置参数
{
return IapRead(Addr)*256+IapRead(Addr+1);//返回数据
}
难道是我程序的问题{:4_199:} 我怀疑是你程序哪里没写好,读取和写入的函数是不是哪里不对,IapProgram(Addr,Dat/256);写入这个地址的时候,确保这个地址里的数据为0xff才可以写入,否则需要擦除
电子DIY小家 发表于 2024-5-9 14:26
我怀疑是你程序哪里没写好,读取和写入的函数是不是哪里不对,IapProgram(Addr,Dat/256);写入这个地址的时 ...
这个我都确保了的,而且下载程序的时候都是勾了擦除EEPROM的。我现在按0x100以下写循环就正常。
void Read_disk(void)//区判断
{
flash_offset=(flash_num/8)*0x10;//偏移量计算8个数据=0x10
for(i=0;i<(128/flash_num);i++)//当前disk获取
{
if((flash_ReadByte(i*flash_offset))!=0xffff)
{
disk=i+1;//判断当前区
}
}
disp=disk;//当前区给屏幕显示
} 我用手头上的另外一个单片机STC8F1K08S2-TSSOP20测试了一下是没问题的,和手册标识的4KB EEPROM一致(0x0000~0x0FFF),
但是STC8G1K08A-8PIN的内部EEPROM只有256byte(0X0000~0X00FF),还是说我手头的这款有损坏了导致的。没有多余的没法测试{:4_167:}
Kingsley 发表于 2024-5-11 09:16
我用手头上的另外一个单片机STC8F1K08S2-TSSOP20测试了一下是没问题的,和手册标识的4KB EEPROM一致(0x000 ...使用不一样,尤其是等待时间要注意
下面的STC8A指STC8A8K64S4A12,
STC8A8K64D4已改到跟STC8G1K08/STC8H8K64U一致
页:
[1]