所以我认为到目前为止我做得还不错,安装了arduino IDE,添加了ESP8266模块,设法让LED闪烁。是时候连接到WIFI并做一些事情。
不幸的是,这一切都崩溃了。我收到有关未定义的对wifi_set_opmode,wifi_station_set_config和wifi_station_connect的引用的错误。现在,这不是我第一次使用C的牛仔竞技表面,所以我开始寻找有关这些功能的文档以及如何将它们包括在内但除了人们显然很乐意使用它们之外什么也找不到。我尝试添加各种#includes但到目前为止没有任何帮助。所以是时候要求一点帮助了。
这是我试图运行的代码(非常平静)
#include <user_interface.h>
#define LED_1 13
void setup() {
// put your setup code here, to run once:
pinMode(LED_1, OUTPUT);
const char ssid[32] = "qqqq";
const char password[32] = "wwww";
struct station_config stationConf;
wifi_set_opmode( STATION_MODE );
os_memcpy(&stationConf.ssid, ssid, 32);
os_memcpy(&stationConf.password, password, 32);
wifi_station_set_config(&stationConf);
wifi_station_connect();
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_1, HIGH);
delay(500);
digitalWrite(LED_1, LOW);
delay(500);
}
我的电路板选择是&#34; Generic ESP8266模块&#34;
以下是错误。
sketch\blinktest.ino.cpp.o:(.text.setup+0x8): undefined reference to `wifi_set_opmode(unsigned char)'
sketch\blinktest.ino.cpp.o:(.text.setup+0x10): undefined reference to `wifi_station_set_config(station_config*)'
sketch\blinktest.ino.cpp.o:(.text.setup+0x14): undefined reference to `wifi_station_connect()'
答案 0 :(得分:2)
你需要注意Arduino不是C,它基于C ++。因此,请添加如下所示的内容以使用基于C SDK的函数。
extern "C" {
#include "user_interface.h"
}
答案 1 :(得分:2)
Arduino IDE在菜单上有代码示例
File > Examples
还有一个名为WiFiWebClient的示例,您只需要更改您的wifi ssid和密码。
将其保存到新文件夹,您可以通过修改示例中的地址向Internet上的任何站点发出http请求。
从制造商的示例开始,因此您无需依赖过时/部分教程。