gpt4 book ai didi

c++ - Arduino与cpp文件通信

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:15 25 4
gpt4 key购买 nike

我已将一个传感器连接到我的 Arduino 板,并正在运行一个草图,该草图从传感器检索一些数据并将其存储在 4 个 double 变量中。我需要从另一个 .cpp 文件访问这 4 个变量。

为此,我为两者创建了一个公共(public)头文件,其中声明了 4 个外部变量。然后在 arduino sketch 中定义这些。问题在于,当我尝试从 .cpp 文件访问变量时,编译器错误表明它们未定义。

arduino 草图:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>
#include <varDec.h>

#define BNO055_SAMPLERATE_DELAY_MS (1000)

double x,y,z,w;

Adafruit_BNO055 bno = Adafruit_BNO055();

void setup()
{
Serial.begin(9600);

if(!bno.begin())
{
Serial.println("Not connected");
while(1);
}

bno.setExtCrystalUse(false);

}

void loop()
{
imu::Quaternion quat = bno.getQuat();

x = quat.x();
y = quat.y();
z = quat.z();
w = quat.w();

uint8_t system, gyro, accel, mag = 0;
bno.getCalibration(&system, &gyro, &accel, &mag);

delay(BNO055_SAMPLERATE_DELAY_MS);

}

cpp文件:

#include <unistd.h> // sleep()
#include <stdio.h> // fopen(), fclose(), fprintf(), perror()
#include <stdlib.h> // exit() and EXIT_FAILURE
#include <iostream>
#include "/home/matthew/sketchbook/libraries/Custom/varDec.h"

using namespace std;

int main()
{
cout << x;
getchar();

getchar();

return(0);
} // end function: main

还有标题:

extern double x;
extern double y;
extern double z;
extern double w;

最佳答案

从我正在阅读的内容结构来看,我猜,你所说的“另一个.cpp 文件”是一个在计算机上运行的程序....

如果是这样,那么您尝试做的事情将永远行不通。变量,被命名为分配内存的空间。并且在计算机上运行的程序将无法访问 arduino 上分配的内存。

从传感器获取值到计算机上运行的程序的最简单方法是对 arduino 进行编程,将值写入串行端口。 (在这里你可以找到关于如何将不同格式的值发送到串行端口的很好的例子:https://www.arduino.cc/en/serial/print)

并且在您的计算机上运行的程序应该读取串行端口以获得预期值。读取计算机上的串行端口并不是一项艰巨的任务。但它取决于系统。互联网上有很多文档)

祝你好运我的 friend ;-)

关于c++ - Arduino与cpp文件通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43758385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com