Ich versuche mal, mein Problem zu beschreiben: STM32CubeIDE erzeugt z.B. in main.c eine Funktion MX_USART1_UART_Init(); Mit F3 springt man dann ja zur Defintion dieser Funktion, hier in der Datei usart.c In dieser Definition wird zum Schluß wie immer eine Init-Funktion aufgerufen, hier HAL_HalfDuplex_Init(&huart1) Mit F3 springe ich dann zu dieser Definition, in der dann irgendwo HAL_UART_MspInit(huart); steht. Und hier ist mein Problem: Wenn ich da mit F3 zur Definition springe, lande ich bei __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) Aber das ist gar nicht die Funktion, die aufgerufen wird, sondern void HAL_UART_MspInit(UART_HandleTypeDef *huart) also ohne __weak. Das Prinzip mit weak habe ich jetzt nachgelesen, ist gar nicht so schlecht. Aber wie bringe ich jetzt die IDE dazu, statt zur __weak zur wirklich genutzten Funktion zu springen???
Kontrolliere ob die C-Datei mit "HAL_UART_MspInit()" überhaupt mit übersetzt wird.
Ich habe das ganze gerade mal bei mir getestet. Beim drücken von F3 springt er erst einmal zu __weak Funktion, da diese in der aktiven Datei steht. Wenn du jetzt noch einmal F3 drückst, springt er zur entsprechenden Declaration in der Header Datei. Mit einem dritten druck von F3 öffnet sich jetzt (bei mir) ein Fenster mit allen Implementationen der Funktion und man kann sich die richtige aussuchen.
OK, das klappt bei mir auch. Danke. Ist aber etwas doof, zukünftig immer vorsichtshalber 2 x F3 zu drücken. Aber besser als gar nichts.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.