Stm32 Ports konfigurieren

Gast #3395255
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 ?
Gast #3395294
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.
Gast #3395331
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 ?
Gast #3395339
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.
Gast #3395699
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.
Angehängte Dateien:
Gast #3395977
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.

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