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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren