sprintf funktioniert nicht in ESP-IDF

OP #7081117
Lesenswert?

Hallo zusammen,
Ich arbeite mich gerade in ESP-IDF ein und bin auf ein Problem gestoßen. 
Ich würde gerne ein Int in einen String/Char array umwandeln und habe 
die Methode sprintf gefunden. Leider scheint sie nicht so richtig zu 
funktionieren, da mein Programm nicht durchläuft, wenn die Methode im 
Programm ist.
Das ist mein Hauptprogramm.
1
#include "ssd1306.h"
2
#include <stdio.h>
3

4
void app_main() {
5
    ssd1306_setup();
6
    char string[100];
7
    int i=12;
8
    sprintf(string,"test %d",i);
9
  //  ssd_1306_print(string, 7);
10
    ssd_1306_print("test",4);
11
    ssd1306_update();
12
}
Wenn ich die sprintf... Zeile auskommentiere, wird auf meinem OLED 
Bildschirm was angezeigt, wenn nicht, nicht.
Hat jemand ne idee, was falsch sein könnte?
Angehängte Dateien:
#7081833
Lesenswert?

Das riecht nach einem Stack Problem. Wenn du sprintf auskommentierst 
wird der Compiler vermutlich auch string[100] rausoptimieren. Daher geht 
es ohne Ausgabe und mit Ausgabe gibt es einen Stackoverflow.

Definiere testweise den string außerhalb der Funktion, dann müsste es 
gehen.
Oder erhöhe den Stack.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren