注释
贡献者
|
这是 AVR 固有的 EEPROM 写入问题。请参阅此注释 以了解如何解决它。 |
作者
|
好的,我不需要将这些数据写入 EEPROM,因为我每次启动应用程序时都会将它们发送到 Arduino。那么有没有一种方法可以禁用 EEPROM 写入并将这些值保存在 RAM 中呢? |
贡献者
|
Grbl 的构建假设用户不会经常更改 EEPROM 设置,更不用说每次应用程序连接时。EEPROM 也有有限的写周期。您一直在进行的重复写入可能已经开始使您的 EEPROM 不稳定。 当前没有不写入 EEPROM 的方式来定义这些设置值。在下一个版本中,它会。 |


随机地,我注意到一种对我来说看起来像是某种崩溃的行为:一段时间后,GRBL 不再发回有效响应,而是通过发送大量 ASCII 字符“4”来淹没我的客户端应用程序 – 直到我执行硬重置(Ctrl-X 在这种情况下不起作用)
我在标准的 ArduinoNano 上与 GIT 的主干线头一起工作。我目前猜测是什么导致了这些问题:这似乎取决于我向 GRBL 发送命令的方法。所以而不是发送例如
$110=somevalue\n
$120=somevalue\n
$111=somevalue\n
$121=somevalue\n
G0X20.000Y30.000\n
?
每行单独发送,我提交类似
$110=一些值\n$120=一些值\n$111=一些值\n$121=一些值\nG0X20.000Y30.000\n?
一次发送所有命令。在这里,我始终注意 GRBLs 缓冲区,因此在任何情况下都不会发送超过 128 个字节,并且在任何情况下命令发送的速度都不会太快而不会导致缓冲区溢出。
我也尝试以较低的波特率工作(为此重新编译 GRBL)但这没有什么区别。
这可能是什么原因?来自 GIT 的代码不是稳定版本吗?或者是 UART 接收 GRBL 的问题,当它们发送得太快时无法处理数据?