1.程序编译后生成的hex文件,下载到单片机后,会存放在Flash存储器里面,程序运行过程中产生的数据会存放在 idata存储器里面,我们用到的单片机还提供了扩展的xdata存储器。hex文件烧录后,单片机掉电仍然会保存在里面,运行过程中产生的数据掉电后就清掉了。如果我们遇到需要保存运行数据的情况,那么就可以使用EEPROM寄存器。
2.EEPROM可以存放运行过程中产生的数据,掉电后也会保存。
3.关于各个存储器的大小,参考芯片手册的2.4.1,有详细介绍,我这里就不赘述了
4.EEPROM存储器有个需要注意的点,就是它只能把字节中的1写为0,不能在把0写位1,要写1的话,只能擦除数据,擦除后存储器字节上的数据就会变成0xFF,全部变为1(同归于尽了属于是)。而且擦除是以扇区为单位进行的,也就是说每次擦除都会擦除掉512个字节的数据。
关于在字节上写0来进行赋值,比如给一个0xFF写0x02,就会将倒数第二为以外的位全部清0,写完数据后,再就只能往里面写数字0了(写了数字0,就彻底不能写其他数了)
5.因为上面的原因,EEPROM如果对一个字节多次调用的话,往往会先擦除,再写入数据。
eeprom.c文件里面只有下面这些函数,函数的结构也很清晰,以读数据为例
先使能IAP,设置工作频率(我们的设备工作