Daten an ein Nextion-Display senden

OP #6834226
Lesenswert?

Guten abend,

ich spiele gerade mit meinem Nextion herum und habe folgendes Problem. 
Ich möchte eigentlich nur eine kleine C-Funktion schreiben, mit der ich 
Strings an verschiedene Textfelder senden kann. Als Parameter möchte ich 
dabei 1) den Namen des Textfeldes und 2) den Ausgabetext übergeben. Im 
konkreten Fall (ist nur ein Testprogramm) soll wenn am uC ein Taster 
betätigt wird (low-active) der Text "LOW" ans Display gesendet werden, 
andernfalls "HIGH".
Mein Problem: Im Textfeld des Nextion erscheint bei gedrücktem Taster 
der Text "Lt4" und unbetätigt "Ht4" wobei "t4" der Name des Textfeldes 
ist. Als IDE verwende ich Atmel-Studio7 und der uC ist ein Nano(328p). 
Ich Poste mal wesentliche Teile des Codes:
1
// Variablen für Textfeld am Nextion
2
char func_name[] = "";
3
char func_txt[] = "";
4

5
// Funktion zum Senden von Text an das Nextion-Display
6
void send_nex_txt(const char *func_name, const char *func_txt){
7
  
8
  PRINT("%s.txt=", func_name);
9
  PRINT("\"");
10
  PRINT("%s", func_txt);
11
  PRINT("\"");
12
  uart0_putc(255);
13
  uart0_putc(255);
14
  uart0_putc(255);
15
  
16
  
17
}
18

19
// read Button0
20
    butt = ((PINB & (1 << PINB0)) ? 1 : 0 );
21

22
    if (butt > 0) {
23
      strcpy(func_txt, "HIGH");
24
      //PRINT("TEST: %s", func_txt);
25
    }
26
    if (butt == 0) {
27
      strcpy(func_txt, "LOW");
28
    }
29
    
30

31
    // test
32
    strcpy(func_name, "t4");
33
                // rufe Funktion auf und übergebe Name und Text
34
    send_nex_txt(func_name, func_txt);

Zum Senden verwende ich die Fleury-Uart. Sende ich die Daten ohne 
Funktion, wird am Nextion alles richtig dargestellt. Die Ausgabe 
erscheint auch am Terminal Programm falsch. Ich finde aber den Fehler 
nicht und wäre über Hilfe dankbar.

LG Markus

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