Forum: Mikrocontroller und Digitale Elektronik Stm32 Ports konfigurieren


von Tomi (Gast)


Lesenswert?

Hallo

ich bin neu im uC und wollte fragen wie bei einem uC ran gehen muss.

Mir ist klar das Ports konfigurieren muss bevor ich mit diesen arbeite.

Leider komme ich gar nicht zurecht wie ich das mit diesen Manuals machen 
muss.

Ich arbeite in der C Umgebung also kein Assembler und besitze das board
SM3210e-Eval board mit einem STM32F103Z Prozessor von ARM

Wie finde ich z.B das ich die Analoge Eingänge auf meinem Board als 
input konfigurieren muss bzw. welche Ports und Pins ich ansprechen muss.

Kann mir jemand Anhand eines Beispiels sagen wie ich ein Analog Eingang 
ADC123_13 als input setze ? Welche Dokumente sind dafür wichtig und auf 
welcher Seite sehe ich das ?

von Dr. Sommer (Gast)


Lesenswert?

Das steht alles detailliert im Reference Manual deines Mikrocontrollers 
und in der Dokumentation zur ST StdPeripheral Library, falls du diese 
verwenden willst.

von Tomi (Gast)


Lesenswert?

Hier ist der Link und in keiner dieser Dokumente konnte ich fündig 
werden.

Vielleicht bin ich blind und habe etwas 5 mal übersehen.

Wäre echt dankbar wenn mir jemand da das sagen könnte an welchen Port 
das anhängt und wie ich das dann im Code angeben muss.


http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF204176

von Dr. Sommer (Gast)


Lesenswert?

Auf diese Seite steht dass der Mikrocontroller STM32F103ZE heißt. Eine 
Suche nach dieser Teilenummer ergibt dessen Beschreibung:
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164495

Unter Design Resources findet sich das Reference Manual:
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
Beschreibung der I/O-Pins (GPIO) geht ab Seite 154 los. Die ADC's 
("Analog-Eingänge") ab Seite 206.

von Christian (Gast)


Lesenswert?


von Pete K. (pete77)


Lesenswert?

Ja, aller Anfang ist schwer. Deine Toolchain funktioniert?

Ein paar gute Infos findet man über google. Ich kann das hier empfehlen:
http://diller-technologies.de/stm32.html

von Tomi (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Auf diese Seite steht dass der Mikrocontroller STM32F103ZE heißt. Eine
> Suche nach dieser Teilenummer ergibt dessen Beschreibung:
> http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164495
>
> Unter Design Resources findet sich das Reference Manual:
> 
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
> Beschreibung der I/O-Pins (GPIO) geht ab Seite 154 los. Die ADC's
> ("Analog-Eingänge") ab Seite 206.

Komisch bei meinem Board steht auf dem Chip STM32F103ZG...

Gut in dieser Doku steht jetzt zwar jetzt das die Analogeingänge ADC mit 
PC1,PC2 und PC3 bezeichnet werden und wie komme ich jetzt damit weiter ?

von Tomi (Gast)


Lesenswert?

Pete K. schrieb:
> Ja, aller Anfang ist schwer. Deine Toolchain funktioniert?
>
> Ein paar gute Infos findet man über google. Ich kann das hier empfehlen:
> http://diller-technologies.de/stm32.html

Ich arbeite mit Keil , ja die Seite ist gut aber ist nicht so das was 
ich suche. Mir gehts darum wie ich Dokumente mit meinem Code verbinden 
kann.

von Dr. Sommer (Gast)


Lesenswert?

Tomi schrieb:
> Komisch bei meinem Board steht auf dem Chip STM32F103ZG...
Ah, gibts verschiedene Boards von. Egal, die haben das selbe Reference 
manual.
> Gut in dieser Doku steht jetzt zwar jetzt das die Analogeingänge ADC mit
> PC1,PC2 und PC3 bezeichnet werden und wie komme ich jetzt damit weiter ?
Lies Seiten 206-244 im Reference Manual. Da steht wie der ADC 
funktioniert, wie die Register heißen und wie sie programmiert werden. 
Lesen, verstehen, umsetzen.

von Jan B. (berge)


Lesenswert?

Hi,

wenn du mit den ST Libraries programmierst, kannst du dir auch mal die 
Beispiele aus den Libraries hier ansehen: 
http://mikrocontroller.bplaced.net/wordpress/?page_id=744
Ansonsten schau in eben diesen Libraries wie die Dinge gemacht werden.

Liebe Grüße,
Jan

von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Tomi schrieb:
> Mir ist klar das Ports konfigurieren muss bevor ich mit diesen arbeite.
>
> Leider komme ich gar nicht zurecht wie ich das mit diesen Manuals machen
> muss.

Hallo Tomi,

du mußt natürlich zu allererst die grndlegenden Dinge einrichten, als da 
wäre die Taktversorgung, Flash usw. Dann kommt die Festlegung der 
Pinverwendung und dann kommt die Festlegung der Datenrichtungen für alle 
GPIO's, dann das Aufsetzen der diversen Peripherie.
Ich geb dir mal ein Beispiel von nem STM32F103ZET6 im Anhang.

W.S.

von Dr. Sommer (Gast)


Lesenswert?

W.S. schrieb:
> Ich geb dir mal ein Beispiel von nem STM32F103ZET6 im Anhang.
Warum, W.S., warum...
1
#define  integer   short int   // d.h. "integer" ist 16bit und "int" 32bit? Aha, intuitiv
2
#define  word      unsigned short int  // Auf ARM ist ein word 32bit.
3
#define  byte      unsigned char
4
#define  dword     unsigned long
5
#define  qword     unsigned long long
6
#define  int64     long long  // aha int64 ist die signed variante von qword - macht natürlich sinn - warum jetzt aber kein int32, int16...?
7
#define  cardinal  unsigned long //wollten wir den nicht dword nennen?
8
9
// Wieso nicht einfach #include <stdbool.h>?
10
#define  bool      unsigned char
11
12
#define  TRUE      1
13
#define  FALSE     0
14
#define  true      1
15
#define  false     0
16
17
18
// warum nicht einfach das vordefinierte "and", "or", "xor" nehmen?
19
#define     MOD   %
20
#define     XOR   ^
21
#define     NOT   ~
22
#define     AND   &
23
#define     OR    |
24
25
#define POINT struct TPoint
26
#define RECT  struct TRect

Warum um alles in der Welt überall #define? Bist du noch in der 
Macroassembler Zeit verhaftet? Warum nicht "typedef", was einen 
richtigen, gescopten C-Bezeichner erzeugt und keine ulkigen Syntaxerror 
produziert? Warum nicht die vordefinierten typen (u)int8_t, (u)int16_t, 
..., (u)int64_t aus der <stdint.h> verwenden und sich selber einen 
Haufen inkonsistenter Typen definieren?

Es ist ja verständlich, die Beispiele und Libraries von ST nicht zu 
verwenden. Aber dann stattdessen so etwas zu produzieren? Da doch 
lieber die "etablierte" StdPeripheral Libary, ST Clock Setups etc. 
verwenden.

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.