Ich habe Eclipse Neon GNU ARM Eclipse Plugin Vers. 3.2.1 und ein STM32F411RE Nucleoboard. Ich folgte dieser Anleitung: http://gnuarmeclipse.github.io/GNU ARM Eclipse 3.2.1 Leere Vorlage HAL_Delay verursacht inf Schleife
Ich erfolgreich installiert die Toolchain, machte ein Blinky-Programm mit der Vorlage, die funktioniert, kann ich auch sagte Blinky prog, mit der d. H. Die HAL_Delay(ms)
Funktion.
Sobald ich jedoch ein leeres Projekt erstellt habe, wird jedes Mal, wenn der Code die HAL_Delay
-Funktion erreicht, eine Endlosschleife ausgelöst.
Dieser Code funktioniert mit dem Online-Compiler:
int main(){
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin =GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
// Infinite loop
while (1)
{
HAL_Delay(2000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_Delay(2000);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
}
}
jedoch in Eclipse Ich erhalte eine Endlosschleife, wenn es HAL_Delay
erreicht. ABER die Funktion funktioniert in der Blinky-Vorlage, die init @ SysCLK ist für beide gleich.
Kann mir bitte jemand sagen, was ich hier vermisse?
Edit: Habe gerade die HAL_Delay zu arbeiten, Lösung war die _inithardware.c im Quellordner zu ändern. Zeile 70, // Bei Verwendung von RTOSes deaktivieren, da sie ihren eigenen Handler haben. #if 1 <<< das war 0 vorher auf 1 geändert. Auch ich habe die elseif in der SystemClock_Config verwendet, mit HSI anstelle von HSE, machte ich Kommentare um die 1. wenn HSE-Teil, so dass HAL_Delay() jetzt funktioniert. –
Wenn Sie die Lösung selbst gefunden haben, können Sie Ihre eigene Frage beantworten, anstatt sie in einem Kommentar zu aktualisieren. –
@ bence ja es war spät und ich habe den Knopf dafür nicht gesehen: P, fertig. –