我一直在研究其他开发平台,用于开发Atmel (Arduino/ATTiny)和基于Espressif (ESP8266)的设备。最近,我安装了PlatformIO。但我在似乎承认全球范围方面有困难。不确定..。
我有一个头文件,其中包含一个用于配置结构的ty以至f:
typedef struct {
char idPrefix[8];
char defPass[16];
char targetSSID[32];
char targetPass[64];
uint8_t beepInRange;
uint8_t beepOutofRange;
} devConfig;我想在ino文件中分配一个配置变量:
devConfig myConfig;但是,当我试图在我的设置或循环中访问它时,例如:
void setup() {
strncpy(myConfig.defPass, "somepass", 16);
}当我尝试运行平台时,它会发出"error:'myConfig‘没有在这个作用域中声明“
这个东西不像arduino那样支持全局变量吗?我做错了什么?任何帮助都是非常感谢的。
发布于 2017-05-17 03:27:55
我认为您一定忘记在主代码中添加#include "Arduino.h"头文件。另外,请注意平台IO编译cpp文件,而不是ino文件。
main.cpp
// Without Arduino.h this code will not compile
#include "Arduino.h"
#include "demo.h"
devConfig myConfig;
void setup() {
strncpy(myConfig.defPass, "somepass", 16);
}
void loop() {
}demo.h
typedef struct {
char idPrefix[8];
char defPass[16];
char targetSSID[32];
char targetPass[64];
uint8_t beepInRange;
uint8_t beepOutofRange;
} devConfig;https://stackoverflow.com/questions/44004422
复制相似问题