Class 中的 Arduino 步进电机指针不工作

Arduino Stepper Motor pointer in a Class is not working

我创建了一个 class 来管理通过串行端口的命令,我使用的是步进电机,但是当我尝试使用步进功能时,它不起作用。 我在 arduino 文件中声明了一个对象,并且我使用了步进器对象的指针到 class 中的 wotk。测试它,setSpeed 方法工作正常但是当我尝试使用 step 方法时,我在编译操作时遇到分段错误。 步进电机库工作正常,我已经做了一些测试并且电机工作正常但是当我尝试在 class 中使用它时,指针不起作用。

主文件

    #include "ClassTest.h"

    ClassTest test;

    Stepper myStepper1 = Stepper(200, 8, 9, 10, 11);

    void setup() {
        test.SetupMotor(&myStepper1);  
    }
    void loop() {
        test.MoveMotor('Motor1',200);  
    }

ClassTest.h

#include "Arduino.h"
#include "Stepper.h"

class ClassTest
{
  public:
    ClassTest();
    void SetupMotor(Stepper* step);
    void MoveMotor(String ,int );
  private:
    Stepper* _myStepper1;
};

ClassTest.cpp

void ClassTest::SetupMotor(Stepper* step)
{
    _myStepper1=step;
        _myStepper1->setSpeed(200);
}

void ClassTest::MoveMotor(String motor,int stepCount)
{
        // i am getting an issue on compiling time about segmentation fault
    _myStepper1->step(200);

}

我尝试了很多东西,但不确定为什么还没有用,有什么帮助吗??? 谢谢!!

我无法重现您的错误。以下代码在 Arduino IDE 中编译:

#include "Arduino.h"
#include "Stepper.h"

class ClassTest
{
  public:
    ClassTest() = default;
    void SetupMotor(Stepper* step);
    void MoveMotor(String, int );
  private:
    Stepper* _myStepper1;
};

void ClassTest::SetupMotor(Stepper* step)
{
  _myStepper1 = step;
  _myStepper1->setSpeed(200);
}

void ClassTest::MoveMotor(String motor, int stepCount)
{
  _myStepper1->step(200);

}

ClassTest test;

Stepper myStepper1 = Stepper(200, 8, 9, 10, 11);

void setup() {
  test.SetupMotor(&myStepper1);
}
void loop() {
  test.MoveMotor("Motor1", 200);
}