Nomar记录一段历史
Gcode 中星号 (*) 的用途是什么?

进行一些低级别监控,将以下序列发送到打印机:

 N0 M106*36 N1 G28*18 N2 M107*39

此序列只是打开风扇,使打印机进入电源,然后关闭风扇。

问题:星号/星号/(*) 和每行后面的两个数字的用途是什么?

* 星号 - [Asterix](https://en.wikipedia.org/wiki/Asterix) 是卡通系列中的一个角色。
@AndrewMorton 那么这将使 gcode 成为罗马人 - Asterix 是他们的校验和,阻止他当地的腐败?
嗯……也许吧。罗马人确实制造了很多东西,就像 3-D 打印机一样。

1个回答

那是一个校验和。它由主机软件添加到 G 代码中,以允许固件进行一些基本的验证,即 G 代码在传输时没有变化。它不会改变 G 代码的含义,您的序列实际代表的只是M106, G28, M107N0,N1,N2,...是行号,行号和校验和的组合用于请求重新发送在传输过程中损坏的任何行。

你知道这里使用的校验和算法吗?
在 Marlin 中,单个字符的所有字节都被异或运算在一起,结果应该与校验和相同。
只是异或:`字节校验和 = 0;字节数 = 0; while(instruction[count] != '*') checksum = checksum^instruction[count++];`

随机文章