marlin固件配置,marlin固件中文详解
前言在上篇内容中主要介绍了marlin2.0安装到已有开发板的实例。这篇内容将通过marlin2.0安装到黑色_STM32F407VE开发板的实践介绍如何为新定制的开发板烧入固件并详细介绍前期的处理过程,希望能为那些想深入固件研究苦于不会编译安装和想绘制三维(三维的缩写)打印机开发板又不知如何烧录固件的枪鱼爱好者一些帮助。
黑色_STM32F407VE开发板的硬件开源资料链接:https://github。com/MCA用户/BLACK _ f 407 ve
构建过程类似于上篇文章的内容,首先将配置内容修改为适合于黑色_STM32F407VE的开发板。
将platformio.ini文件中的[plarformio]下的默认_环境修改为
default_envs=STM32F407VE_black将配置。h文件中的母板修改为:
#ifndef主板#定义主板BOARD_BLACK_STM32F407VE#endif将配置。h文件中的串口一串行端口修改为-1或一
#定义串行端口1 //USB虚拟串口串行端口定义为-1是选择通用串行总线端口作为虚拟串口使用(可能需要STM32的虚拟串口驱动)。
#定义串行端口1 //普通串口一个串行端口定义为一是选择开发板的串口一作为通信端口,当然也可以定义为2,3,4等,此时选择的便是串口2、串口3、串口四等串口。
Note
对于串口端口2串行端口2的注释不要去除,保持原样,在需要一定的配置后才能使用串口端口2,否则会编译出错(当然如果串口端口一使用串口1/USB虚拟串口,串口端口2使用通用串行总线虚拟串口/串口一的情况下不需要额外配置,若要使用其它串口则需要配置)。后面我们会说到如何使用它。
//#定义串行端口2 -1正常情况下通过以上3步的过程,就能够编译通过了,也可以下载到开发板中体验一番了。
构建分析platformio.ini文件在将默认_环境配置为STM32F407VE_black之后实际起作用的就是下文中的这些内容:
[平台io]src _ dir=MARLIN boards _ dir=build root/share/platform io/boards default _ envs=STM 32 f 407 ve _ Black[common]default _ src _ filter=src/*-src/config-src/HAL src/HAL/shared xtra _ scripts=pre:build root/share/platform io/scripts/common-cxx标志。py build _ flags=-fmax-errors=5-g-D _ _马林_固件_ _-FM戈尔-全部这里仅是简单的介绍一下几个必要的概念,剩余的内容请大家参考平台视频官方文档介绍—platformio.ini部分:
Board_dir:指定电路板描述文件的位置。platformio会先根据指定的位置寻找板卡描述文件,如果找不到就在安装目录中寻找。板卡描述文件的位置在这里指定:build root/share/platform io/boards。
纸板:指定纸板描述文件的名称。
根据上面两条指令,我们可以准确的找到板卡描述文件:build root/share/platform io/boards/blackstm 32 f 407 vet 6 . json .文件JSON报文描述了硬件的具体信息。这里我们注意一下第19行的位置:它指定了编译时需要用到的与板卡相关的源文件的文件夹名(后面会用到,这里知道就好)。
Platform_packages:指定编译后的平台框架。这里使用的是框架-arduinostm 32。其实这是ST官方用Arduino平台为STM32开发板开发的库。该库结构清晰整洁,兼容STM32全系列芯片。它已经包含了许多开发板示例,当然,您可以按照这些示例,向其中添加您自己的开发板。
extra _ scripts=pre:build root/share/platform io/scripts/generic _ create _ variant . py:这一行是执行python脚本的文件,前面有前缀pre:表示在主脚本执行之前执行(这里可以理解为在编译之前执行)。这个脚本文件可以在上面的路径中找到。打开这个文件后,可以看到一段python源代码,主要做一件事:将build root/share/platform io/variants路径下的所有内容复制到C:Users{ username} 的路径下。platform io packages framework-arduinostm 32 variants(适用于windows)。这些内容都是编译用的。还记得之前板卡描述文件中提到的MARLIN_F407VE吗?build root/share/platform io/variants目录下有一个名为MARLIN_F407VE的文件夹,不是同一个名字。以前的名称是该文件夹的名称。MARLIN_F407VE存储与硬件直接相关的源配置文件。
知道了以上信息,你可以根据自己的开发板,模仿已有的案例,完成两个任务。
根据样本修改电路板描述文件,并根据模板修改电路板相关源文件。如何配置和使用多个串口
— 基于framework-arduinoststm32框架,以BLACK_F407VE为例
?现在marlin可以配置双串口支持,并且可以支持串口屏(串口屏支持会在后面的文章中解释)。如果我们只在马林代码层配置多个串口,编译会出错。以下文字开始:
打开build root/share/platform io/variants/marlin _ f 407 ve文件夹下的variant.h文件,在//UART Definitions下关于文件的第307行添加以下enable:
#define ENABLE_HWSERIAL 2 //启用串口2#define ENABLE_HWAERIAL 3 //启用串口3。配置完成后,marlin将启动多串口编译,这样就不会报告错误。