Hallo Leute, da ich mich für meine Studium mit der Technischen-Informatik weiter beschäftigen muss (Embedded-Systems) hab ich mir das folgende System auf Empfehlung meines Professors bestellt. Mein Prof. ist momentan in Urlaub so das ich ihn nicht erreichen kann und ich weiß jetzt nicht so ganz wo ich anfangen soll. Wenn Ihr mir n paar Stichpunkte nenne könntet womit ich michr erstmal beschäftigen sollte bzw was ich mir aneignen sollte wäre ich euch echt dankbar. Vielen dank schon mal und viele Grüße
Moin Lad dir das das Library von ST runter. Acker die Beispiele durch, versuche mit dem DB zu verstehen was St da Programmiert hat. Dann such dir n Einfaches Projekt bei dem du nur n Beispiel abändern musst. usw. MfG Tec
Hy, erstmal danke für die Antwort. Ich hab mich jetzt erstmal mit der Blink-Demo beschäftigt, aber iwie werde ich daraus nicht wirklich schlau. Gibt es irgendwo ne art Tutorial wie ich die Ports vom MC als I/O definiere und wie ich z.b. LEDs ansprechen kann? Ich muss dazu sagen das ich im Bereich MC-Programmierung null Erfahrung habe. Ich hab bis jetzt nur normale Anwendungen in C, C# und Java geschrieben. Danke für eure Mühe und Geduld mit einem totalen Anfänger.
Oh OK, Es gibt ein Tutorial für das STM32VL-Discovery Board. Und auch hier auf der Seite gibts Anleitungen STM32 LEDBlinken AtollicTrueStudio Ist zwar eine andere Entwicklungsumgebung aber der Code ist mit dem Lib der gleiche. Das sollte dir erst mal die Fragen beantworten Sonst einfach hier in dem Artikel für STM32 schauen. STM32 Das CHM File in der Doku zu dem Lib von St finde ich auch sehr gut, kann mann sich eigendlich gut dran langhangeln und Beispiel Code zusammen kopieren. Den solltest du aber dann auch verstehen, deshalb brauchst du Das RM0008 das ist das Referenzhandbuch für deinen Controller da steht alles dazu drin. Wunder dich nicht über die handliche Größe, zum Ausdrucken ist das Nix aber zum nachschlagen. Bei Keil sind auch Beispiele bei, Schau mal auf deren Seite die sind genau für dein Board und laufen sofort. Dann kannst du erst mal damit als Basis rum spielen. MfG Tec
Hi, da du - wie beschrieben - mit Keil µVision arbeitest, schaue dir doch mal die Beispiele in c:\keil\ARM\Boards\Keil an, sofern du ein Keil MCBSTM32.. hast. Die laufen, und verwenden keine komplizierte Driverlibrary. > Ich muss dazu sagen das ich im Bereich MC-Programmierung null Erfahrung > habe. Ich hab bis jetzt nur normale Anwendungen in C, C# und Java > geschrieben. C funktioniert auf dem µC genauso wie auf dem PC. Der Unterschied ist nur, dass du aus deiner main() nie zurückkommst (da muss eine Endlosschleife rein, in der idR. dein Programm läuft, wenn du kein RTOS verwendest), und du musst dich etwas mit Registern auseinandersetzen. Mehr nicht :-) VG, /th.
Das die Lib von ST jetzt kompliziert ist ist wohl Geschmackssache. Ich finde sie macht den Code Lesbarer als GPIOD->BSSR = 0x0000001; (bei den Registernamen erhebe ich keinen anspruch auf Richtigkeit :D) und solche Scherze. Klar bist du mit Registerzugriffen schneller, aber das brauchst du zu Anfang nicht, und später auch nur bei Zeitkritischen Funktionen. MfG Tec
naja, ich selbst schreibe es noch wieder anders.
1 | UART0->CR = (1<<RXEN) | (1<<TXEN) | (1<<EN); |
Wollte nur drauf hinweisen, dass man ein Blinky auch mit weniger als KB-weise code zustandebringt. :-)
Klar das ist auch wieder Lesbar. Deshalb meinte ich ja ist Geschmackssache. Aber das Lib ist immer gleich egal welcher STM32F1xx, Und das Driverlib von TI z.b. ist ähnlich auf gebaut. Muss man für sich entscheiden was einem Besser gefällt die Register Variante hat den Vorteil das man nur das RM0008 und das DB von dem Controller braucht. MfG Tec
Im Grunde mußt du dir das Referenz-Manual des Prozessors durchlesen. Da das aber mehrere 100 Seiten sind, lies das durch was du brauchst. In deinem Fall das Kapitel GPIO Ports. Die Programmierung läuft bis auf eine entscheidende Ausnahme ziemlich gleich ab wie am PC. Die Ausnahme ist: man schreibt direkt auf Adressen bzw. Register des Prozessors. All das eben, was einem die C# und Java Idioten verbieten. Ja, C und Microkontroller ist noch Freiheit! Grüsse
Danke für die Zahlreichen Antworten dann hab ich jetzt ja erstmal einiges zu lesen ^^ Und danke für Eure Auskunftsfreudigkeit ^^ Ihr habt mir echt geholfen. Grüße
So nach ner ganzen Weile steig ich jetzt so langsam durch die GPIO Register durch. Meine LEDs kann ich jetzt ansteuern und blinken lassen. Jetzt tut sich mir die Frage auf ob ich das Delay eleganter lösen kann als bisher. Momentan verwende ich folgende Funktion dafür.
1 | void delayLoop() { |
2 | volatile uint32_t delayCount = 1000000; |
3 | |
4 | while (delayCount > 0) { |
5 | delayCount--; |
6 | }
|
7 | }
|
Wenn ihr mir da noch helfen könntet wäre das echt klasse. Grüße Eike
Dafür nimmt man in der Regel den SysTick, einen speziellen Timer, der zum Core der STM32 gehört. Dazu gibt es Beispiele in der FW-Lib. Er ist relativ problemlos zu konfigurieren. Auch hier im Forum gibt es viele Beiträge dazu.
Dann werd ich mich mal auf die Suche machen. Danke dir ^^
Eike Ulrichs schrieb: > Jetzt tut sich mir die Frage auf ob ich das Delay eleganter lösen kann > als bisher. Ja. Z.B. läßt sich dieser Vorschlage sehr gut uch auf dem STM32 verwenden: Beitrag "Wartezeiten effektiv (Scheduler)" Grüße Sven
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.