[STM32F107] STM3210C-SK/KEIL

OP (Firma: Student) #2262364
Lesenswert?

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
OP (Firma: Student) #2264045
Lesenswert?

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.
Persönliche Seite #2264160
Lesenswert?

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
Persönliche Seite #2264173
Lesenswert?

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.
Persönliche Seite #2264325
Lesenswert?

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
(Firma: Raich Gerätebau & Entwicklung) #2265037
Lesenswert?

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
OP (Firma: Student) #2267597
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren