class - [AccelStepper][PlatformIO][mbed] 请求''中的成员'',它是非类类型
问题描述
所以我一直在尝试创建 3 个 'accelstepper' 对象。 这是我的代码的屏幕截图,以防代码部分不出现。此外,这是文件“stepper_directory.h”的屏幕截图
#include <mbed.h>
#include "stepper_directory.h"
//Include accelstepper library
#include <AccelStepper.h>
//Create accelstepper object for the Z-Axis actuator
AccelStepper zaxis(uint8_t interface = AccelStepper::DRIVER, uint8_t zstep = ZSTEP, uint8_t zdir = ZDIR);
//Create accelstepper object for the theta axis actuator
AccelStepper taxis(uint8_t interface = AccelStepper::DRIVER, uint8_t tstep = TSTEP, uint8_t tdir = TDIR);
//Create accelstepper object for the magnet actuator
AccelStepper maxis(uint8_t interface = AccelStepper::DRIVER, uint8_t mstep = MSTEP, uint8_t mdir = MDIR);
这是我使用的头文件“stepper_directory.h”
#ifndef _STEPPER_DIRECTORY
#define _STEPPER_DIRECTORY
#include "PinNames.h"
//Pin Definitions
#define ZSTEP PA_7
#define ZDIR PA_0
#define TSTEP PA_8
#define TDIR PA_1
#define MSTEP PA_9
#define MDIR PA_2
我尝试在 main.cpp 的主代码中设置一个步进器,如下所示:
int main() {
// put your setup code here, to run once:
zaxis.setMaxSpeed(188000);
while(1) {
// put your main code here, to run repeatedly:
}
}
但是 platformIO 编译器抛出了这些行:
src\main.cpp: In function 'int main()':
src\main.cpp:17:7: error: request for member 'setMaxSpeed' in 'zaxis', which is of non-class type 'AccelStepper(uint8_t, uint8_t, uint8_t)
{aka AccelStepper(unsigned char, unsigned char, unsigned char)}'
zaxis.setMaxSpeed(188000);
^~~~~~~~~~~
*** [.pio\build\nucleo_f410rb\src\main.o] Error 1
我一直在尝试搜索我的对象实例化有什么问题,但无济于事。如果有人能解释这有什么问题,我将不胜感激。这是有问题的错误的屏幕截图
解决方案
问题就在这里。
//Create accelstepper object for the Z-Axis actuator
AccelStepper zaxis(uint8_t interface = AccelStepper::DRIVER, uint8_t zstep = ZSTEP, uint8_t zdir = ZDIR);
这是一个函数声明。它接受三个参数并返回AccelStepper
。您不能AccelStepper
使用这行代码初始化 的实例。
我假设AccelStepper
的构造函数是这样的:
AccelStepper AccelStepper(uint8_t interface, uint8_t zstep, uint8_t zdir);
您可以通过这种方式初始化您的实例:
AccelStepper zaxis(AccelStepper::DRIVER, ZSTEP, ZDIR);
推荐阅读
- rails-activestorage - 如何处理 ActiveStorage 直接上传的 ActiveSupport::MessageVerifier::InvalidSignature 错误
- python - TypeError: int() 参数必须是字符串、类似字节的对象或数字,而不是“DeferredAttribute”
- php - PHP 从数组中选择一个调查
- python - 如何在 Python 中从字符串中就地删除重复项?
- javascript - 程序在 page.evaluate 的嵌套循环中冻结 - Puppeteer - NodeJS
- javascript - 如何使用 ECMAScript 6 模块导入 PlotlyJS
- database - 当我在本地主机服务器中处理我的数据时,它的读取速度非常快,但是当我将数据库连接到 mongolab 时,数据读取速度非常慢
- c++ - 传递给函数时找不到c ++向量?
- python - numpy.ndarray 值不能与 if 语句进行比较
- php - 将行从 HTML 表单插入 sql 数据库时出现问题。我究竟做错了什么?我对此很陌生