我正在为Arduino创建自己的库,我有以下代码:
#include <Arduino.h>
#include <Servo.h>
class ServoMotorController {
public:
ServoMotorController(int servoPin, int motorPin, int angle);
void setAngle(int angle);
void setSpeed(int speed);
private:
Servo servo;
int servoPin;
int servoAngle;
int motorPin;
int motorSpeed;
};
我收到Servo
未命名类型的错误;但如果我这样做
#include <Servo.h>
#include <ServoMotorController.h>
在我的实际Arduino代码中然后我没有得到错误。 为什么include语句在我的C ++库中不起作用?
以下是更多信息:
文件层次结构:
Arduino
libraries
MyServo
ServoMotorController .h
ServoMotorController .cpp
Servo
SoftwareServo.h
SoftwareServo.cpp
Servo_Program
Servo_Program.ino
ServoMotorController.h是上面显示的文件。
当我使用arduino IDE来包含伺服库时,它会
#include <Servo.h>
#include <ServoMotorController.h>
并且没有问题,但是如果我不在arduino文件中包含并且只包含在.h和.cpp文件中,则表示Servo没有命名类型。
答案 0 :(得分:0)
评论框太长了......
您是否对包含文件使用防护?
#ifndef SERVO_H
#define SERVO_H
. . . . .
#endif
#ifndef SERVOMOTORCONTROLLER_H
#define SERVOMOTORCONTROLLER_H
. . . . .
#endif
答案 1 :(得分:0)
不知道这有帮助,但要包含您创建的标题文件,您可能希望使用引号而不是尖括号&#34;
#include&#34; ServoMotorController.h&#34;