marlin2.1.1中的主程序void loop() { do { idle(); #if ENABLED(SDSUPPORT) if (card.flag.abort_sd_printing) abortSDPrinting(); if (marlin_state == MF_SD_COMPLETE) finishSDPrinting(); #endif queue.advance(); #if EITHER(POWER_OFF_TIMER, POWER_OFF_WAIT_FOR_COOLDOWN) powerManager.checkAutoPowerOff(); #endif endstops.event_handler(); TERN_(HAS_TFT_LVGL_UI, printer_state_polling()); TERN_(MARLIN_TEST_BUILD, runPeriodicTests()); } while (ENABLED(__AVR__)); // Loop forever on slower (AVR) boards }的解读
时间: 2024-04-24 22:22:20 浏览: 13
这段程序是 Marlin 2.1.1 中主程序 void loop() 的代码。该函数的作用是循环运行各种功能模块,以确保 3D 打印机的正常运行。以下是对该函数的具体解读:
1. do-while 循环语句,表示无限循环,直到程序被强制终止。
2. idle() 函数用来让 CPU 进入空闲状态,以减少功耗和热量。
3. 如果启用了 SD 卡支持,程序会检查是否需要中止 SD 打印,以及是否需要完成 SD 打印。
4. queue.advance() 函数用来推进打印队列,以确保 3D 打印机能够按照正确的顺序打印。
5. 如果启用了自动关机功能,程序会检查是否需要自动关机。
6. endstops.event_handler() 函数用来处理机械开关的事件。
7. 如果启用了 TFT LCD 显示器支持,程序会检查打印机状态并更新显示器 UI。
8. 如果启用了测试模式,程序会运行一些周期性的测试。
9. 在 AVR 等速度较慢的单片机上,程序会一直循环运行,直到强制终止。
总之,这段程序是 Marlin 2.1.1 中主程序 void loop() 的核心代码,它确保了 3D 打印机的正常运行,同时支持多种功能和扩展。
相关问题
marlin2.0.9.5可以刷mks_gen lv1.0吗
Marlin 2.0.9.5可以刷MKS Gen L V1.0主板。MKS Gen L V1.0主板是一款基于Arduino Mega2560的3D打印机控制板,支持RAMPS、MKSSBASE等接口。Marlin是一款适用于3D打印机的开源固件,可实现对打印机的控制和调整。Marlin的版本需要与主板兼容才能正确地工作,而MKS Gen L V1.0主板支持Marlin 2.0.x系列的固件。因此,可以使用Marlin 2.0.9.5来刷MKS Gen L V1.0主板,以控制和操作3D打印机。刷板前需要进行一些配置和调整,确保主板与驱动器的相互兼容和协调,以获得最佳的3D打印效果。如果不确定如何操作,建议查看MKS Gen L V1.0主板和Marlin固件的官方文档或咨询相关技术人员的意见。
marlin-2.1 中文代码
Marlin是一种开源的三维打印机固件,它使用C++语言编写。Marlin 2.1是Marlin团队最新发布的版本,它增加了许多新的功能和改进。
Marlin 2.1中文代码主要有两个方面的内容。首先,它包含了各种菜单和用户界面的本地化翻译。这意味着用户可以选择使用中文进行操作和设置打印机。通过翻译代码中的文字,Marlin团队使得更多讲中文的使用者能够更方便地使用Marlin固件。
其次,Marlin 2.1中文代码还包括了与中文区域相关的一些特殊设置。例如,Marlin团队考虑到了中国地区的电源频率和电压标准,代码中包含了相关的设置选项,以确保打印机在中国使用时能够正确工作。此外,还包括了与中国主要厂商的硬件兼容性相关的代码。
代码中的中文翻译和特殊设置使得使用Marlin固件的中文用户能够更加方便地使用三维打印机。这为中文用户提供了更舒适的用户体验和更高的使用便利性。
总之,Marlin 2.1中文代码是经过翻译和本地化适应中国用户需求的Marlin固件版本。这使得中文用户能够更轻松地使用这个开源的三维打印机固件。