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