1:单片机型号:IAP15W4K58S4;2:程序目的:用它的程序区当EEPROM用,并且赋EEPROM初值;3:我的思路是:CODE一个数组并赋初值后到程序区的一个地址,这个地址等会儿是要做EEPROM的,工作运行中用IAP功能改变这个地址的值。4:出现的问题:无论如何都改变不了数组值,也就是没擦除掉,这个扇区挨着数组的别的空间写读都没问题,这究竟是怎么了,,,,
#include<stc15.h> void main() { IAP_ADDRH=0x80; IAP_ADDRL=0x00; while(1); }就这几两句运行后,在KEIL上打开DEBUG,D在WATCH窗口中输入IAP_ADDRH和IAP_ADDRL,单步运行并观察,发现IAP_ADDRL这个里面的值改变不了。。。不知道什么问题,请高手支援
要把这个IC的某个区当EEPROM用,除非能将这个区写保护,但是IAP15貌似没这个功能吧
你把程序放上来看看
您好,寫入時候照理說要先擦除(Erase),然後在寫值(Write),許多SPI Flash,EEPROM運作模式是這樣唷
您可以上傳Project比較好Debug
以上
用它的程序区当EEPROM用,并且赋EEPROM初值;这个是可以的
关键你的EEPROM区的地址有没有找对。
然后下载工具是否得当。
嗯,看了一下你上面贴的那部分程序,你尝试一下这样写
sfr IAP_ADDRH=0x80;sfr IAP_ADDRL=0x00;
看看有什么结果
参考这篇文章http://www.51hei.com/mcu/1673.html