下面的代码给出了错误:
sketch_jul05a:2: error: variable or field 'func' declared void
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何将指针作为函数参数传递给结构?
码:
typedef struct
{ int a,b;
} Struc;
void func(Struc *p) { }
void setup() {
Struc s;
func(&s);
}
void loop()
{
}
Run Code Online (Sandbox Code Playgroud) 我买的液晶显示器不工作,我不知道为什么!当我上传代码时,显示屏仅亮起,但没有显示任何内容!有什么帮助吗?
我的 LCD 型号:1602A 带 I2C (16x2)就像这里的这个
地址:0x27(使用I2C扫描码检查)
代码:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup() {
lcd.begin(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("hello everyone");
lcd.setCursor(1,1);
lcd.print("I am Giga Blitz");
}
void loop() {
}
Run Code Online (Sandbox Code Playgroud)
示意图: 点击此处查看图片
我在 Arduino IDE 中有两个文件。一种是.ino文件,一种是.c文件。
main.ino:
#include "somefile.c"
void setup(){
Serial.begin(9600);
// Do something
}
void loop(){
// Do something
}
Run Code Online (Sandbox Code Playgroud)
并在somefile.c我想打电话Serial.print()。我怎样才能做到这一点?谢谢!
我使用此代码检查了Arduino引脚8的状态。查看该引脚是高电平还是低电平,但是我的输出从高电平连续变为低电平。
运行此代码时,我没有将任何东西连接到引脚8。
const int Pin = 8;
int Reading=0;
void setup() {
Serial.begin(9600);
delay(2000);
pinMode(Pin, INPUT);
}
void loop() {
Reading = digitalRead(Pin);
if(Reading == HIGH)
{
Serial.println("HIGH");
delay(2000);
}
if(Reading == LOW)
{
Serial.println("LOW");
delay(2000);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我的输出是这样的:输出:
HIGH
HIGH
LOW
LOW
HIGH
HIGH
LOW
LOW
HIGH
HIGH
LOW
LOW
HIGH
HIGH
LOW
LOW
Run Code Online (Sandbox Code Playgroud)
不知道该怎么办??
我正在使用 ArduinoIDE 对 ESP32 进行编程,并且遇到了 HTTP GET 问题。我在做什么:
这是我用于 HTTP GET 调用的代码:
static WiFiClient wifi;
HttpClient wlanHttp=HttpClient(wifi,"my.server.tld");
wlanHttp.get("/setpos.php?id=DEADBEEF"); // -> this fails with error code -1
wlanHttp.responseStatusCode(); // follow-up error -1
wlanHttp.stop();
Run Code Online (Sandbox Code Playgroud)
知道这里出了什么问题吗?
所以我知道millis() 返回自程序开始运行以来经过的时间,对吗?
现在我遇到了这样的情况,在延迟中使用了 millis():
long dly = millis();
while (millis() - dly < 250) {
yield(); // enough time to send response
}
Run Code Online (Sandbox Code Playgroud)
的值怎么可能millis() - dly大于0?如果关键是无限期让步,为什么有人会使用这样的延迟?
我遇到的问题是,由于 Access-Control-Allow-Origin 错误,我无法从创建的 .json 中 fetch() 。我发现我必须创建某种标头,但我不知道这样的命令在我使用的库中是什么样子以及必须选择哪些参数。我希望您能帮助我对此代码进行必要的添加。
\n#include <ArduinoJson.h>\n#include <WiFi.h>\n#include <WebServer.h>\n#include <DHT.h>\n\n#define DHTPIN 13\n#define DHTTYPE DHT11\n\nDHT dht(DHTPIN, DHTTYPE);\n\nconst char *ssid = "XXX";\nconst char *pwd = "XXX";\n\nStaticJsonDocument<250> jsonDocument;\nchar buffer[250];\n\nfloat temperature;\nfloat humidity;\n\nWebServer server(80);\n\nvoid setup() {\ndht.begin();\nSerial.begin(9600);\nSerial.println(WiFi.localIP()); \nSerial.print("Connect to: ");\nSerial.println(ssid);\nWiFi.begin(ssid, pwd);\n while (WiFi.status() != WL_CONNECTED){\n Serial.print(".");\n delay(500);\n }\nSerial.print("Connected. IP: ");\nSerial.println(WiFi.localIP());\nsetup_routing();\n}\n\nvoid setup_routing(){\n server.on("/sensor", getEnv);\n sendHeader()\n server.begin();\n}\n\nvoid create_json(char *tag, float value, char *unit){\n jsonDocument.clear();\n jsonDocument["type"] = tag;\n jsonDocument["value"] = value;\n jsonDocument["unit"] = unit;\n serializeJson(jsonDocument, buffer);\n}\n\nvoid add_json_object(char *tag, float value, char *unit){\n JsonObject obj = jsonDocument.createNestedObject();\n …Run Code Online (Sandbox Code Playgroud) 我看过其他帖子也有相同的错误消息,但找不到任何适合我的解决方案。我使用的是 Windows 10。我已完成所有必需的步骤,但仍然弹出错误。
我知道当我们购买 NodeMCU 时,我们会在其中安装 NodeMCU 固件。但是我们为什么能够在这个开发工具包中使用 Arduino IDE(用于 C++ 编程)?
我们如何使用 C++ IDE 来处理基于 Lua 的固件?我这里的概念有什么问题?
arduino-ide ×9
arduino ×6
arduino-uno ×3
c++ ×2
esp32 ×2
arduino-c++ ×1
avr ×1
c ×1
electronics ×1
http ×1
http-get ×1
iot ×1
javascript ×1
lcd ×1
lua ×1
nodemcu ×1
webserver ×1
wifi ×1
windows-10 ×1