Gast
#2074744
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