STM32F411 | in Interupt Period ändern?

Gast #5065293
Lesenswert?
• ▲
▼
Hello!

Ich habe folgendes Problem (mit dem STM32F411): Ich würde gerne über die 
USART (Eingabe von hTerm) einen Dezimalwert empfangen den ich dann in 
Millisekunden als meine Period verwenden möchte. Der Code so wie er da 
steht funktioniert leider nur halb, denn wenn ich versuche einen wert 
einzugeben der 3-Stellig ist, nimmt er mir nur noch die letzte Ziffer. 
Wo liegt da der Fehler (sorry bin noch anfänger :) )

////////////////////////////////////////////////////////

void USART2_IRQHandler(void) {

  while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE)!=SET) {
  }
  int eingabe = (int) USART_ReceiveData (USART2);
  TIM2->ARR = eingabe;

  GPIO_SetBits(GPIOA, GPIO_Pin_5);

  TIM_Cmd (TIM2, ENABLE);

  USART_ClearITPendingBit (USART2, USART_IT_RXNE);
}

////////////////////////////////////////////////////////


Bin für alle Tips dankbar!!!

LG
#5065551
Lesenswert?
• ▲
▼
Abgesehen davon, das diese While Schleife (wenn die USART korrekt 
konfiguriert ist) komplett sinnlos ist.

@TE: Schau dir mal an, wie deine Zeichen auf der Seriellen Schnittstelle 
übertragen werden, dann solltest du auch verstehen, warum das mit den 3 
Zeichen so nicht klappen kann.
Gast #5065578
Lesenswert?
• ▲
▼
Hallo,
Über den UART wird üblicherweise 1 Byte Nutzdaten pro Nachricht 
übermittelt.
Das bedeutet ohne Vorzeichen können die Dezumalwerte 0-255 dargestellt 
werden. Wenn du jetzt einen größeren Wert schickst, wo ich mir nicht 
sicher bin, wie du das machst, ohne zu merken, dass etwas komisch ist, 
wird dieser wahrscheinlich in 2 Nachrichten geteilt. Liest du dann nur 
das Low-Byte aus, bekommst du dein Ergebnis.

Daher solltest du dich zuerst etwas mit dem UART beschäftigen und damit 
wie du mehrere Byte Mach dem Empfang zusammenführst.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.