Forum: Mikrocontroller und Digitale Elektronik STM32 Nextion Daten empfangen


von STM32 User (Gast)


Lesenswert?

Hallo zusammen,

ich nutze einen Black Pill (STM32F411) mit einem 3,5" Nextion Display. 
Das senden funktioniert einwandfrei. Nun tue ich mich schwer, Daten vom 
Nextion zu empfangen. Bis jetzt habe ich das empfangen von Zeichen im 
Interrupt mit HTerm getestet. Nur habe ich gerade ein Brett vorm Kopf, 
wie ich relativ effizient auf auf die drei 0xFF abfragen kann, die das 
Nextion am Ende des Strings sendet.

Und ich nutze kein Arduino, sondern STM32CubeIDE mit HAL.

Gruß Achim

von Kevin M. (arduinolover)


Lesenswert?

Due empfängst die Zeichen und prüfst im IT auf 0xFF. Dann zählst du 
einen Zähler hoch und wenn der 3 hintereinander hat bist du fertig?

von STM32 User (Gast)


Lesenswert?

Hallo,

ich hab es jetzt so gemacht:
1
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
2
{
3
  HAL_UART_Receive_IT(&huart1,  &Rxbuf, 1);
4
  if(!String_Complete)              // 1= String noch in Bearbeitung
5
    {          
6
    if(Rxbuf!=0xFF)                // Ende-Kennung?
7
      {
8
      RXBuffer[RXBuffer_Count]=Rxbuf;      // Zeichen in Buffer schieben
9
      RXBuffer_Count++;            // Zähler erhöhen
10
      }
11
    else
12
      {
13
      if(FF_Count==1)              // 1= schon zwei End-Kennungen erkannt
14
        {
15
        String_Complete=1;          // String fertig
16
        RXBuffer_Count=0;          // Index auf Null
17
        }
18
      else
19
        {
20
        FF_Count++;              // End-Kennungszähler erhöhen
21
        }
22
      }
23
    }
24
25
}

Im Debugger habe ich es mit HTerm getestet. Sieht erstmal gut aus. Hab 
ich da grobe Schnitzer drin?

Gruß Achim

von STM32 User (Gast)


Lesenswert?

Einen kleinen Nachtrag habe ich aber dennoch. Wenn ich alles ausschalte 
und dann wieder einschalte, regiert der STM32 nicht auf die Daten vom 
Nextion. Erst wenn ich noch eine Reset am STM32 ausführe, geht es wieder 
normal?!

Gruß Achim

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.