STM32 USART falsche Ausgabe Terminal

Gast #1605490
Hallo ich brauche eure Hilfe,

Problem:
Ich sende einen String über den USART2 , leider empfängt das Terminal 
nur komische Zeichen.

Benutze folgendes Board:
STM32-P103

IDE: Eclipse

Mein Code:
http://www.pastebin.com/m1b23db21

Folgender String würd übertragen:
"Buffer Send from USART2 to USART1 using Flags"

Das Terminal empfängt aber das hier (siehe Bild)

In der stm32f10x_conf.h war schon HSE auf 8MHz eingestellt

#define HSE_Value    ((u32)8000000) /* Value of the External oscillator 
in Hz*/

Auf dem Board ist ein 8Mhz oscillator und ein kleiner "Uhrenquarz" 
aufgelötet.

Ich hab auch schon ein wenig im Forum gesucht, da lags es meisten an dem 
Takt muss aber nichts heissen.

Ich hoffe jemand hat ne Idee wie ich das lösen kann.

Vielen Dank schon Mal

Mfg Hugo
Angehängte Dateien:
Gast #1605560
Hast Du schon mal die FWLib von STM angeschaut?
Dort gibt es 12 Demos über UART !

Damit sollte es kein Problem mehr sein die richtige Baudrate und andere 
Parameter ein zu stellen. Bei mir gehts auch und ich nutze 115200 Baud 
bei 8MHz HSI.
Gast #1605595
Hi,
ich hab mir die eben runtergeladen welche Zip-Datei enthält den ein 
USART Beispiel?
Das einzigste was ich gefunden hab war etwas zu RC-Calibration

Mfg
Gast #1608245
Hallo, ich hab mir ein paar examples anguckt aber es bringt mich 
irgendwie nicht weiter. Liegt wahrscheinlich daran das ich das ich nicht 
verstehe was ich für den USART, für den Taktabschnitt, ändern muss.

@Georg
Diese Funtkionen gibt es nicht mehr, hab mir die Header und C-Datei für 
den USARt angeguckt die sind nicht mehr dabei.

Was ich nicht verstehe ist Clk_Init() -(hab ich aus dem Blink-Flash 
programm von ST kopiert)

Warum da in der initialisierung einmal der intere Clock HSI(8Mhz)
// 1. Cloking the controller from internal HSI RC (8 MHz)
RCC_HSICmd(ENABLE)
und danach der externe Clock HSE(8Mhz) mit
// 2. Enable ext. high frequency OSC
RCC_HSEConfig(RCC_HSE_ON)
aktiviert werden, was soll das bringen, liegt daran der Fehler?

Ich hab gar keien Idee, was ich an meinem Code anpassen muss.

Mfg
Gast #1608382
Sry für doppelpost kann aber leider nicht editieren.

Hab im Datenblatt rausgefunden das man die Wahl zwischen 3 Clock Sources 
hat :
HSE, HSI und Pll

dann gibt es noch eine zweite Clock-Quelle die ich hier aber nicht 
brauche.
Warum also werden den alle 3 aktiviert?

Und im Datenbaltt steht noch wenn man USB benutezen will muss man mit 
Hilfe des PLL auf 45 oder 72Mhz pushen, das wird bei mir auch gemacht 
das ist doch auch unnötig oder?

Kann mir vielleicht jemand Schritt für Schritt sagen was ich aktivieren 
muss und wie ich dann die richtige Baudrate bestimme?

Mfg
#1608435
hugo schrieb:

> Warum also werden den alle 3 aktiviert?

Der 8MHz HSI ist von Haus aus ohnehin aktiv, damit startet der 
Controller aus dem Reset. Routinen zur Taktsteuerung werden 
üblicherweise zuerst auf HSI schalten, bevor irgendwas an der PLL 
gedreht wird. Andernfalls sägt man den Ast ab auf dem man sitzt, wenn 
diese Routine nicht nur nach Reset sondern später auch noch aufgerufen 
wird.

HSE ist der Oszillator mit dem Quarz, ohne den gibt es keinen genauen 
Takt.

Die PLL ist nur nötig, wenn du die CPU nicht direkt mit dem HSE 
betreiben willst. Meist will man es schneller, jedenfalls nach den 
ersten Gehversuchen, und dann eben per PLL.

Anfangs empfiehlt es sich für UART-Betrieb, ohne PLL direkt per HSE zu 
arbeiten. Erst wenn das funktioniert, dann kommt der Schritt zur PLL.

Wenn du kein USB verwendest, dann kannst du dir eine Frequenz <= 72MHz 
frei aussuchen, bzw. so frei wie die PLL es zulässt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.