3D打印Marlin2.0固件源代码分析之如何使用LOG接口调试代码

2021-07-07 18:56:41 浏览数 (1)

调用打印接口可以用:

代码语言:javascript复制
#define SERIAL_ECHOLNPGM(str)    Serial.println(F(str))
#define SERIAL_ECHOPGM(str)     Serial.print(F(str))
#define SERIAL_ECHO_MSG(str)    Serial.println(str)
#define SERIAL_ECHOLNPAIR(str,val) 
  do{ Serial.print(F(str)); Serial.println(val); }while(0)
#define SERIAL_ECHOPAIR(str,val) 
  do{ Serial.print(F(str)); Serial.print(val);}while(0)
可左右滑动查看

如何使用?以Marlin2.0setup()函数里,有对应的使用方法:

代码语言:javascript复制
#if defined(STRING_DISTRIBUTION_DATE) && defined(STRING_CONFIG_H_AUTHOR)
  SERIAL_ECHO_MSG(
   " Last Updated: " STRING_DISTRIBUTION_DATE
   " | Author: " STRING_CONFIG_H_AUTHOR
 );
#endif
SERIAL_ECHO_MSG("Compiled: " __DATE__);
可左右滑动查看

其中STRING_DISTRIBUTION_DATE是一个宏,它在Marlin/src/inc/Version.h这个文件中被定义, 原型如下:

代码语言:javascript复制
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
 #define STRING_DISTRIBUTION_DATE "2021-04-29"
#endif
可左右滑动查看

它可以用来指定当前固件被修改的日期。 STRING_CONFIG_H_AUTHOR也是一个宏,它在Marlin/Configuration.h这个文件中被定义,原型如 下:

代码语言:javascript复制
// Author info of this build printed to the host during boot and M115
#define STRING_CONFIG_H_AUTHOR "(Yangyuanxin For AC firmware)" // Who made the
changes.
可左右滑动查看

它可用来指定当前固件的修改者,意思就是如果定义了以上的宏,那么就调用SERIAL_ECHO_MSG接口将这些固件信息打印出来。

0 人点赞