情况是这样的,我的程序里有一个参数,数值不超过1000,我要保存到EEPROM中,那就要分两个字节存放。我用下面的方式保存是正常的: BASE = 0x4000; param = 999; eeprom_write(BASE+0x01, param/256); eeprom_write(BASE+0x02, param%6); 当我准备读的时候,自然想到的是这样: param = eeprom_read(BASE+0x01)<<8 + eeprom_read(BASE+0x02); 但是怎么读都不成功,param始终是0 后来我想了一起,也许是编译器的理解问题。上一句语句中,其实是三个操作:读、读、加。我估计是编译器拆解语句有问题吧,后来我就干脆自己帮编译器先拆解好: param = eeprom_read(BASE+0x01)<<8; param += eeprom_read(BASE+0x02); 这样,读出来的param就正常了。
转载于:https://www.cnblogs.com/craftor/p/3811742.html