本帖最后由 guiyn 于 2021-11-29 11:42 编辑
HI 大佬们求教一个问题。就是按下按钮显示 wifiscan的结果。我的代码如下:
- #include <Arduino.h>
- #include <Ticker.h>
- #include <ESP8266WiFi.h>
- Ticker ticker;
- void setup() {
- Serial.begin(115200); // 打开串口
- // 设置按钮
- pinMode(D3, INPUT);
- ticker.attach_ms(100, scanButtonClick);
- }
- void loop() {
- }
- void scanButtonClick() {
- if (digitalRead(D3) == 0)
- {
- Serial.println("in click...");
- int scanResult = WiFi.scanNetworks();
- if (scanResult == 0) {
- Serial.println(F("No networks found"));
- }
- else if (scanResult > 0) {
- Serial.printf(PSTR("%d networks found:\n"), scanResult);
- String ssid;
- int32_t rssi;
- uint8_t encryptionType;
- uint8_t* bssid;
- int32_t channel;
- bool hidden;
- for (int8_t i = 0; i < scanResult; i++) {
- WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);
- delay(1);
- }
- } else {
- Serial.printf(PSTR("WiFi scan error %d \n"), scanResult);
-
- }
- }
- }
复制代码 关于这个监控按钮 显示wifi.sacn 的任务。这么放到ticker 中就无法实现。 但是放到loop中就是可以的。 请问这是什么原因呢。请大佬给出原理。或者指明方向。
我用的开发板是淘宝十五块钱的esp8266 的D1
|