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);
}
我创建了一个 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);
}