Hallo, ich tue mich gerade schwer mit einem ESP8266 und dem ESP8266 RTOS
SDK.
Zunächst versuche ich einfach nur mal alle WiFis zu scannen und
auszugeben. Aber schon die Initialisierung funktioniert nicht richtig.
main:
1 | void app_main()
|
2 | {
|
3 | /* Print chip information */
|
4 | esp_chip_info_t chip_info;
|
5 | esp_chip_info(&chip_info);
|
6 | printf("This is ESP8266 chip with %d CPU cores, WiFi, ",
|
7 | chip_info.cores);
|
8 |
|
9 | printf("silicon revision %d, ", chip_info.revision);
|
10 |
|
11 | printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
|
12 | (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
13 |
|
14 |
|
15 | wifiEventGroup = xEventGroupCreate();
|
16 |
|
17 | printf("start scanning WiFi\r\n");
|
18 | wifiScan();
|
19 |
|
20 | EventBits_t evBits;
|
21 |
|
22 | while(1)
|
23 | {
|
24 | evBits = xEventGroupWaitBits(wifiEventGroup, WAIT_BIT, true, false, portMAX_DELAY);
|
25 | printf("main Task called\r\n");
|
26 | }
|
27 |
|
28 | printf("end main\r\n");
|
29 | }
|
Hier rufe ich wifiScan auf, und bleibe dann im Task, damit später andere
Tasks laufen können.
1 | void wifiScan(void)
|
2 | {
|
3 | printf("init esp wiFi\r\n");
|
4 | wifi_init_config_t wifi_config = WIFI_INIT_CONFIG_DEFAULT();
|
5 | ESP_ERROR_CHECK(esp_wifi_init(&wifi_config));
|
6 | }
|
hier passiert auch nicht viel, außer esp_wifi_init
Als ausgabe bekomme ich aber log im anhang
Man sieht, dass immer wieder die Funktion esp_wifi_init aufgerufen wird.
Und auch wifiScan() wird immer wieder aufgerufen "start scanning WiFi"
ist öfters im Log zu finden.
Die Chip-Informationen, werden allerdings nur einmal geschrieben.
Also ein richtiger Reset ist das ja anscheinend nicht. Aber die Funktion
wifiScan sollte trotzdem nur einmal aufgerufen werden.
Und woher kommt der ganze andere log?
So viel printf's habe ich gar nicht drinn.