Forum: Mikrocontroller und Digitale Elektronik STM32F4 programmieren in C


von Sascha W (Gast)


Lesenswert?

Hallo Leute,

ich würde mich gerne mit dem STM32 auseinandersetzen bzw. das ganze mal 
in C programmieren.

Tutorials gibts zwar im Netz viele, aber meiner Meinung nach gibts kein 
Tutorial, was aufzeigt, was denn die Befehle auch bedeuten.

Das ist genau so, wie wenn ich Tutorials aufzeigen würde, wie man an 
einer Konsole etwas darstellt... wie z.B.

...
printf("Erzeuge Ausgabe");
..

ohne den Befehl printf zu erklären.

Von daher gibt es Bücher, oder Skirpts oder ähnliches die für absolute 
Anfänger geeignet sind?

von Markus C. (ljmarkus)


Lesenswert?

Nun ja dach gibt es. nennt sich Reference Manual

Du schaust die im Headerfile an welche Register gesetzt werden und 
weitere Infos sind dann im Reference Manual dazu.

von Falk B. (falk)


Lesenswert?

@  Sascha W (Gast)

>ohne den Befehl printf zu erklären.

Logisch. Diese Kurse setzen voraus, daß man MINDESTENS die Grundlagen 
von C beherrscht, besser noch mehr. Die Kurse erklären nur die 
speziellen Eigenschaften des Controllers.

>Von daher gibt es Bücher, oder Skirpts oder ähnliches die für absolute
>Anfänger geeignet sind?

Ein Grundlagenbuch für C, davon gibt es viele.

von Sascha W (Gast)


Lesenswert?

Falk B. schrieb:
> @  Sascha W (Gast)
>
>>ohne den Befehl printf zu erklären.
>
> Logisch. Diese Kurse setzen voraus, daß man MINDESTENS die Grundlagen
> von C beherrscht, besser noch mehr. Die Kurse erklären nur die
> speziellen Eigenschaften des Controllers.
>
>>Von daher gibt es Bücher, oder Skirpts oder ähnliches die für absolute
>>Anfänger geeignet sind?
>
> Ein Grundlagenbuch für C, davon gibt es viele.

C kann ich sehr gut eig. Wohl mein Problem nicht ganz verstanden. Also 
hier z.B. wird gezeigt wie man eine LED zum blinken bringt:

// 3 Erster Start: LED einschalten


In diesem Beispiel soll lediglich eine LED per Software eingeschaltet 
werden um die Schritte zur Erstellung eines Projekts in CoIDE zu zeigen, 
sowie das Flashen mit CoFlash zu testen.

..\main.c

STM32F100RB

#include "stm32f10x_conf.h"

int main(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  SystemInit();

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

  GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);

  while(1)
  {
  }
}

Ich hätte aber jetzt doch mal eine Erklärung dazu, was denn hier 
passiert bzw. was die Befehle denn so heissen!!!

von Falk B. (falk)


Lesenswert?

Da muss man in der Dokumentation der Bibliothek nachschauen, welche

GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);

etc. zur Verfügung stellt.

https://www.mikrocontroller.net/articles/STM32#Hardware_Zugriffs-Libraries

https://www.mikrocontroller.net/articles/STM32_f%C3%BCr_Einsteiger

von W.S. (Gast)


Lesenswert?

Sascha W schrieb:
> ich würde mich gerne mit dem STM32 auseinandersetzen bzw. das ganze mal
> in C programmieren.
>
> Tutorials gibts zwar im Netz viele, aber meiner Meinung nach gibts kein
> Tutorial, was aufzeigt, was denn die Befehle auch bedeuten.

Soso. Du stehst also noch ganz am Anfang und bist vorerst 
orientierungslos. Tja, da ist erstmal viel lesen angesagt - aber keine 
Tutorials, sondern eher Dokumentationen zu den konkreten Chips und zum 
Prozessorkern als solchen.

Tutorials sind nach meiner Erfahrung eigentlich immer nur ne Art von 
Kochrezept, um zu irgend einem vom Tutorial-Verfasser gesteckten Ziel zu 
kommen. Das eigentliche Verstehen der Dinge kommt dort immer zu kurz.

Allerdings sind Referenzmanuals für gewöhnlich auch kein einfach zu 
lesendes Buch und sie setzen das Verständnis der Materie voraus - was 
dir offenbar bislang fehlt. Also lies und lerne und wenn du ne wirklich 
konkrete Frage zu einem konkreten Detail hast, dann stelle sie hier.

Aber erwarte nicht, daß es sowas wie den Nürnberger Trichter für µC 
gibt. Jaja, es gibt zwar Firmen, die irgend welche drallen 
Hilfsprogramme anbieten und dazu sagen "nehmense dies Programm, das 
erzeugt ihren Code von ganz allein, sie brauchen bloß zu lallen." aber 
damit ist auch dir im Grunde nicht geholfen.

W.S.

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

W.S. schrieb:
> Allerdings sind Referenzmanuals für gewöhnlich auch kein einfach zu
> lesendes Buch und sie setzen das Verständnis der Materie voraus - was
> dir offenbar bislang fehlt.
Genau deshalb bringt das m.M.n. Anfängern nichts. Ich habe auch mit 
Tutorials und Examples angefangen. Der Blick in die Manuals und 
Datasheets kommt dann von alleine und immer öfter. Heute schaue ich 
zuallererst ins Manual bevor ich loslege.

von Arc N. (arc)


Lesenswert?

Reginald L. schrieb:
> W.S. schrieb:
>> Allerdings sind Referenzmanuals für gewöhnlich auch kein einfach zu
>> lesendes Buch und sie setzen das Verständnis der Materie voraus - was
>> dir offenbar bislang fehlt.
> Genau deshalb bringt das m.M.n. Anfängern nichts. Ich habe auch mit
> Tutorials und Examples angefangen. Der Blick in die Manuals und
> Datasheets kommt dann von alleine und immer öfter. Heute schaue ich
> zuallererst ins Manual bevor ich loslege.

Und wie haben die angefangen, die in der Prä-Internetzeit bzw. 
Prä-Tutorialzeit mit Mikrocontrollern angefangen haben (angenommen 
Kenntnisse von Gattern, Transistoren etc. waren vorhanden)?
Gut, die "Mikro"-Controller von heute, wie die größeren STM32F4, sind 
z.T. komplexer als damals ganze Homecomputer deren Register und 
Assemblerbefehl-Hexcodes man nach einiger Zeit im Schlaf aufsagen 
konnte, was bei den heutigen "Datenblättern" mit mehreren 1000 Seiten 
nicht möglich aber auch nicht unbedingt nötig ist. Es reicht mit Teilen 
anzufangen. Wie werden Pins gesetzt, wie die Datenrichtung, dann geht es 
an die anderen Blöcke wie Timer, SPI, I²C, ADC usw. usf.
Hängen bleibt zwar nicht jedes Detail, aber meist ein besseres 
Verständnis für die Teile und wie diese im ganzen zusammenhängen. Und 
das ist wichtig.
Tutorials zeigen m.M.n. zwar einen schnellen, einfachen Weg zum Ziel, 
aber weder alle möglichen noch den oder die optimalen Wege.

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
Noch kein Account? Hier anmelden.