打印虎logo3D打印模型大全 免费下载
欢迎来到打印虎问答 ,这里是专业的3D打印问答社区,有问必答!

3D打印机的固件代码中关于EEPROM部分

0 投票
在Eeprom.cpp中有个函数如下

void EEPROM::initBaudrate()
{
#if EEPROM_MODE!=0
    if(HAL::eprGetByte(EPR_MAGIC_BYTE)==EEPROM_MODE)    //从EEPROM里读取一个字节数据,判断其模式是否正确
    {
        baudrate = HAL::eprGetInt32(EPR_BAUDRATE);
    }

其中EPR_MAGIC_BYTE和EEPROM_MODE分别代表什么意思?
最新提问 1月 25 用户: SRL (190 分)

1个回答

0 投票
EPR_MAGIC_BYTE的值为0,意义为EEPROM的地址0。

地址0上的数据,含义为EEPROM当前所处的模式,与真正的Magic number意义不太一样,所以这个标号的命名不够好。

这个值就是EEPROM_MODE。可以取0,代表EEPROM不工作;也可以取非零值,代表EEPROM工作。每次程序启动的时候,会对比EEPROM中保存的值,与固件中定义的EEPROM_MODE值。如果两个值一样,代表用户希望利用EEPROM中的值。两个值不一样,代表用户刚刚修改了固件,要用固件中定义的值覆盖EEPROM中的值。

这里的逻辑关系相当复杂,如果不能理解上面的文字,可以先参考

http://www.dayinhu.com/tutorial/1345.html

文章第十二节开头的描述。

当然最终最精确的逻辑,还是在代码中。
最新回答 1月 26 用户: 打印虎 (7,180 分)
...