Guten Tag, ich verwende gerade den STM32F091RC mit der uVision 5 IDE Essential. Der unten aufgeführte Code soll die Peripheral Clock für GPIOA einschalten. Wenn ich im Debugg-Fenster die Register beobachte wird die Clock für DMA1 eingeschaltet. Nach langen probieren hab ich leider keine Lösung gefunden. Wenn ich den gleichen Code in der STM32CubeIde laufen lasse, funktioniert der Code einwandfrei. In der uVision 5 IDE hab ich CMSIS Core und die Device Startup Files mit eingebunden. Um auf die Register zuzugreifen benutze ich die Bezeichnungen aus der eingebundenen Header-Datei "stm32f0xx.h". Die deklarierten Addresse der Register habe ich schon überprüft, Sie stimmen mit der Doku überein. Doku Reference Manual Seite 120: https://www.st.com/resource/en/reference_manual/dm00031936-stm32f0x1stm32f0x2stm32f0x8-advanced-armbased-32bit-mcus-stmicroelectronics.pdf Kann mir wer dabei weiterhelfen?, eventuell hab ich nur ein Brett vor dem Kopf und sehe den Fehler nicht :) ______________________________________________________________________ __ #include "stm32f0xx.h" int main(void) { RCC->AHBENR &= ~RCC_AHBENR_GPIOAEN; // clear GPIOA clock RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // enable GPIOA clock while(1){} }
:
Bearbeitet durch User
Wenn Du stm32f0xx.h includierst, musst Du ja irgendwo den exakten Controller definiert haben. Da gibt es ja viele, STM32F030, F031, etc. In der stm32f0xx.h finden sich nämlich ganze viele "#ifdef ..." Anweisungen die dann je nach definiertem Symbol die richtigen Definitionen für Deinen Controller includen. Der richtige Controller muss in der IDE bei den Präprozessor-Einstellungen "defines" definiert sein. Die CubeMX IDE macht es offenbar richtig, und in Deiner IDE ist möglicherweise ein falscher Typ angegeben, so dass falsche (default?) Definitionen gezogen werden die nicht zu Deinem Controller passen.
:
Bearbeitet durch User
Klingt blöd, aber bist du sicher, dass die in µV eingestellte CPU mit dem eingebunden Header und vor allem der getesteten Hardware übereinstimmen? Uns ist tatsächlich letzteres in einer Kleinserie passiert. Da hat nämlich der Bestücker einen F103x statt eines F100x entgegen der BOM bestückt und es sind sehr ähnliche Effekte aufgetreten. Unsere QS hat es nicht gesehen. Fiese Sache ;) Hast du das genau durchgesteppt? Assembler Listing angeschaut? edit: Ach menno, hab schon länger nicht mehr refresht :(
:
Bearbeitet durch User
Benutz doch einfach die offizielle STm32CubeIDE ...
Leopoldina schrieb: > Benutz doch einfach die offizielle STm32CubeIDE ... µVision ist genauso "offiziell" unterstützt von ST. Was ne fragwürdige Aussage. Es wird schon Gründe haben, dass er µV nimmt. Z.B. den besseren Compiler oder die Middleware von Keil?
Problem ist schon behoben, hab nicht daran gedacht den richtigen uC einzustellen
Dustin B. schrieb: > Problem ist schon behoben, hab nicht daran gedacht den richtigen uC > einzustellen war ja auch mein Vorschlag, war nur leider zu lahm. Viel Spaß :)
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.