注释
|
我很确定这是由 Arduino 引导加载程序引起的。当它第一次启动时,它会将所有 GPIO 引脚设置为三态,然后等待来自计算机的命令。如果没有得到它超时并开始运行主程序(在本例中为 GRBL)。我相信有一种方法可以使用 ISP 编程器设备将固件直接写入 AVR 并禁用引导加载程序。 |
|
我忘了提。当您连接到 GRBL 时引导加载程序正在运行的原因是因为打开与 USB 到串行接口的新连接会导致它重置主 CPU。 |
|
你问的是物理插入 USB 电缆(即给微控制器供电)吗?如果是这样,除非 5V 电源轨始终存在,否则您无法做到这一点。它仍然需要进行如下所述的修改。 或者你问的是插入USB线后多次建立软件连接?如果是这样,我会指出每次建立串行连接时 grbl 都会重置 grbl。这是因为 grbl 的通信协议必须由主机手持…这是一个简单的主机“执行此操作”,然后是 grbl 的“确定”。如果您填充缓冲区,然后断开连接并允许 grbl 执行命令,然后重新连接,您将不知道 grbl 在哪里(除非它已经处理完所有内容并且现在处于空闲状态)。我想您可以选择该实现(即连接后,在缓冲区为空之前不要发送任何新命令)。 所以是的,您可以处理该限制,您需要做的就是修改 main() 运行每个 xxxx_init() 函数的时间(即不在 for 循环内)。请记住,主机需要能够理解 grbl 可能会在打开串行连接后立即向主机发送数据。 最后一点:Arduino IDE 的串行监视器会在连接时自动重置串行总线,因此您需要使用连接时不会重置的第 3 方 grblController。 |


当我连接到 GRBL 一秒钟时,电机停止尝试保持其位置。我确信这是软件的一个限制,但如果可以禁用该行为那就太好了。