STM32 läuft nicht mit globalen Variablen?

Gast #2074744
Lesenswert?
• ▲
▼
Hi everyone,

Das ist wieder ein Beitrag für STM32. Obwohl es schon so viele Beiträge 
im Forum gibt, helfen sie mir leider nicht bei meinem merkwürdigen 
Problem.

Meine Entwicklungsumgebung: Linux, Sourcery G++ Lite 2010.09-51 for ARM 
EABI, Eclipse, STM32F10x_StdPeriph_Lib_V3.4.0 aus STM und der uC 
STM32F103.
Der Kode ist sehr einfach, und zwar:

int m = 2;  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
int main()
{
  int i;

  // GPIO Configuration
  USART1_GPIO_Config();

  // USART Configuration
  USART1_Config();
  while (1)
    {
      USART1_Send ( (uint16_t)'a');
      for (i=0; i<1000000; i++);
      //m = 3;   //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
  return 0;
}
Am Anfang lief das erstellte Projekt komplett reibungslos. D.h. Die 
Kompilierung und das Flash funktionierten. PC hat tatsächlich die 
Nachrichten („aaa…“)empfangen.

Aber dann tritt das komische Problem auf, wenn die Zeile
m = 3;   //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
im Kode eingesetzt ist, um die globale Variable zu ändern. Die 
Kompilierung und das Flash laufen nach wie vor. Trotzdem empfängt der PC 
nur das einzige „a“ und wird keine Nachricht mehr auf dem Monitor 
gezeigt. Anscheinend dürfte man keine globale Variable ändern. Warum 
funktioniert der uC bei mir nicht mit der globalen Variable? Hat jemand 
schon auf solchem Problem gestoßen?

Vielen Dank im Voraus.
Tom
Gast #2074879
Lesenswert?
• ▲
▼
hi

hatte auch ein Problem mit dem usart... mein Problem war das ich nicht 
gewartet hab bis dieser mit senden fertig ist... es müsste eine Funktion 
geben die prüft ob der usart fertig ist... diese hab ich in ner while 
schleife überprüft bis der usart fertig ist....
Gast #2076383
Lesenswert?
• ▲
▼
Hallo, I am back :)

To Torsten,
Dein Vorschlag habe ich probiert. Nach wie vor wird nur ein 'a' gezeigt.



To Peter,
Eigentlich benutze ich die funktion aus StdPeriph_Lib, und zwar
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data).
Ich habe "volatile" hinzugefügt. Aber dasselbe Problem tritt auf :(

Hat jemand noch eine Idee?

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.