如何在主文件中定义常量并在其他头文件中使用它?

问题描述

file0:Main.ino(它是arduino文件):

#define AXIS_SERIAL Serial1
#include "header.h"
...
void setup(){...}
void loop() {...}
...

file1:header.h

...
#ifndef AXIS_SERIAL
#define AXIS_SERIAL Serial
#endif
...

file2:header.cpp

...
AXIS_SERIAL.print("Hello World")
...

问题: 当我在 AXIS_SERIAL 内部的 header.cpp 值中使用函数时,仍然是 Serial(不是 Serial1)。 有没有办法在主文件中定义一个常量,并在其他头文件中使用它?如果是这样,它将泛化我的一段代码

我知道可以声明一个类似 HardwareSerial Axis_serial = Serial1; 的变量,但我将来可能会使用 Software Serial。所以我需要一个同时适用于硬件和软件串行类的东西。

解决方法

是的,这应该是可能的,最后 #define 指令用您输入的字符串替换您的新“别名”:

#define MY_DEFINE Serial

您的代码

void loop(){
   MY_DEFINE.println("Hello World!");
}

你的编译器看到了什么:

void loop(){
   Serial.println("Hello World!");
}