ESP8266 HTTP请求在中断时失败
问题描述:
我试图用ESP8266和ESP8266HTTPClient库进行HTTP请求。我在loop()
函数中发出请求,每5秒发出一次请求,完美无瑕地完成工作。不过,我也有一个像这样的中断设置:ESP8266 HTTP请求在中断时失败
void interrupt() {
if(WiFiMulti.run() == WL_CONNECTED) {
Serial.println("Knock!");
HTTPClient http;
knockhttp.begin(http_address + "/knock");
int httpCode = http.GET();
if(httpCode > 0) {
Serial.println(http.getString());
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
}
失败。每当中断触发时,我都会收到“连接被拒绝”错误。它连接到与循环中的请求相同的服务器,只是不同的路径。
答
好的,我修好了。
出于某种原因,与ESP8266HTTPClient库HTTP请求中不中断范围内工作,所以这里是我想出了解决的工作:
- 在中断设置一些布尔标志。
- 检查,在主循环
- 标志在主循环执行HTTP请求时,标志匹配
- 复位标志。
希望这可以帮助任何人遇到同样的奇怪问题。
什么在激发你的中断? – Defozo
哎呀,对不起。应该更清楚了。这是来自数字IO引脚的外部中断,在下降沿触发。我也尝试过去除没有帮助的反弹。 – mdszy