Marlin 开源项目使用教程
1. 项目的目录结构及介绍
Marlin 项目的目录结构如下:
Marlin/
├── .github/
├── .vscode/
├── Documentation/
├── Marlin/
├── buildroot/
├── config/
├── docker/
├── scripts/
├── src/
├── .clang-format
├── .editorconfig
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── platformio.ini
└── version.h
目录介绍
- .github/: 包含 GitHub 相关的配置文件,如 issue 模板和 pull request 模板。
- .vscode/: 包含 Visual Studio Code 的配置文件。
- Documentation/: 包含项目的文档文件。
- Marlin/: 包含 Marlin 固件的主要代码。
- buildroot/: 包含构建系统所需的文件。
- config/: 包含不同硬件配置的示例文件。
- docker/: 包含 Docker 相关的文件。
- scripts/: 包含构建和测试脚本。
- src/: 包含 Marlin 固件的源代码。
- .clang-format: 代码格式化配置文件。
- .editorconfig: 编辑器配置文件。
- .gitignore: Git 忽略文件配置。
- .travis.yml: Travis CI 配置文件。
- CHANGELOG.md: 项目更新日志。
- CODE_OF_CONDUCT.md: 行为准则。
- CONTRIBUTING.md: 贡献指南。
- LICENSE: 项目许可证。
- README.md: 项目介绍和使用说明。
- platformio.ini: PlatformIO 配置文件。
- version.h: 版本信息文件。
2. 项目的启动文件介绍
Marlin 项目的启动文件主要是 Marlin/Marlin.ino
,这是一个 Arduino 项目的主文件,包含了 Marlin 固件的初始化和主循环。
Marlin.ino 文件介绍
#include "Marlin.h"
void setup() {
setup_killpin();
setup_filrunoutpin();
setup_power_monitor();
setup_homepin();
setup_photpin();
setup_power_loss_recovery();
setup_software_endstops();
setup_probe_temp_compensation();
setup_heaters();
setup_temperature_sensors();
setup_power_supply();
setup_watchdog();
setup_fan_speed();
setup_print_job_counter();
setup_stepper();
setup_lcd();
setup_motion();
setup_planner();
setup_endstops();
setup_delta();
setup_scara();
setup_bed_leveling();
setup_probe();
setup_toolchanger();
setup_fwretract();
setup_advanced_pause();
setup_case_light();
setup_spindle_laser();
setup_tmc();
setup_stepper_driver();
setup_probe_offset();
setup_z_probes();
setup_mesh();
setup_calibration();
setup_sdcard();
setup_leds();
setup_servo();
setup_idle();
setup_temperature_control();
setup_thermal_protection();
setup_print_stats();
setup_report_status();
setup_report_current_position();
setup_report_temperatures();
setup_report_endstops();
setup_report_settings();
setup_report_feedback();
setup_report_errors();
setup_report_commands();
setup_report_gcode_info();
setup_report_machine_info();
setup_report_firmware_info();
setup_report_build_info();
setup_report_version_info();
setup_report_debug_info();
setup_report_debug_level();
setup_report_debug_flags();
setup_report_debug_commands();
setup_report_debug_settings();
setup_report_debug_status();
setup_report