EEPROM读写问题请教
请教一下,我使用实验箱例程中的EEPROM读写代码,void EEPROM_write_n(u16 EE_address, u8* DataAddress, u16 number),void EEPROM_read_n(u16 EE_address, u8* DataAddress, u16 number), 遇到如下问题先在500的位置写入3个字节,
datares = 0x1; datares = 0x2; datares = 0x3;
EEPROM_write_n(500,datares,3);
然后
EEPROM_read_n(500,datares,3);
这时能读取的字符与写入的一致。
但是将地址换为512后,就不对了。
我使用的是stc8H8K64U芯片, 下载程序时设置EEPROM的大小为2K。
再补充一下,我使用的是USB-CDC工作模式。 关注一下!顶起来! 地址换为512后,-----是跨扇区了。 512正好是第二个扇区的起始位置啊,怎么会跨扇区呢? 该芯片的EEPROM容量为2K,地址范围从0x0000到0x07FF。因此,你可以将写入和读取的地址都限定在0x0000到0x07FF的范围内,以确保操作在有效的EEPROM地址范围内进行。
如果你仍然遇到问题,请确保你的代码没有其他错误或逻辑问题。你可以尝试在其他地址写入和读取数据,例如0x100或0x200等,并检查结果是否正确。如果问题仍然存在,可能需要进一步调试和分析。
你提到的512确实是STC8H8K64U芯片中EEPROM的第二个扇区的起始位置,因为这个芯片的EEPROM被分为4个扇区,每个扇区的大小为512字节,第一个扇区从地址0开始,第二个扇区从地址512开始,以此类推。
因此,在第二个扇区的起始位置512处进行读写操作是没有问题的。但是,你可能需要检查你的代码以确保正确地使用了EEPROM的地址和扇区。如果你的代码没有问题,你可以尝试在其他地址和扇区进行读写操作,以确保操作没有出现问题,并且芯片的EEPROM没有损坏。
谢谢各位热心的回帖。代码没有问题,可能是我使用USB-CDC进行程序下载流程没有搞对的原因,后面我切换到HID模式下载程序后,都对了。不好意思,小白一枚,给各位添麻烦了!再次感谢!
页:
[1]