首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >范围问题(?)用PlatformIO

范围问题(?)用PlatformIO
EN

Stack Overflow用户
提问于 2017-05-16 14:34:09
回答 1查看 393关注 0票数 0

我一直在研究其他开发平台,用于开发Atmel (Arduino/ATTiny)和基于Espressif (ESP8266)的设备。最近,我安装了PlatformIO。但我在似乎承认全球范围方面有困难。不确定..。

我有一个头文件,其中包含一个用于配置结构的ty以至f:

代码语言:javascript
复制
typedef struct {
        char idPrefix[8];
        char defPass[16];
        char targetSSID[32];
        char targetPass[64];
        uint8_t beepInRange;
        uint8_t beepOutofRange;
} devConfig;

我想在ino文件中分配一个配置变量:

代码语言:javascript
复制
devConfig myConfig;

但是,当我试图在我的设置或循环中访问它时,例如:

代码语言:javascript
复制
void setup() {
  strncpy(myConfig.defPass, "somepass", 16);
}

当我尝试运行平台时,它会发出"error:'myConfig‘没有在这个作用域中声明“

这个东西不像arduino那样支持全局变量吗?我做错了什么?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 03:27:55

我认为您一定忘记在主代码中添加#include "Arduino.h"头文件。另外,请注意平台IO编译cpp文件,而不是ino文件。

main.cpp

代码语言:javascript
复制
// 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

代码语言:javascript
复制
typedef struct {
        char idPrefix[8];
        char defPass[16];
        char targetSSID[32];
        char targetPass[64];
        uint8_t beepInRange;
        uint8_t beepOutofRange;
} devConfig;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44004422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档