STM32 Anfängerfragen

Gast #3464751
Lesenswert?

Hallo Profis,

ich habe heute mein STM32 Discovery bekommen und die letzten Tage viel 
gelesen.

Folgende Fragen beantwortet mir Tante G oder mikrocontroller.net leider 
nicht. Vielleicht kann man das hier als Sammelthread nutzen???

1. Portinitialisierungen mit der STM32 Standard Peripheral Library

Wie ich aus folgendem Beitrag erkennen kann
http://www.mikrocontroller.net/articles/STM32F10x_Standard_Peripherals_Library
wird unter Verwenung der GPIO_InitTypeDef Struktur erst die Einträge aus 
der Struct gefüllt.
1
GPIO_InitTypeDef GPIO_InitStructure;
2

3
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;

Dann wird der gesamte Port mit Inhalt der Struktur initialisiert
1
GPIO_Init(GPIOA, &GPIO_InitStructure);

Ich frage mich nun, wie mit dieser Prozedur jetzt z.B. A0 als Eingang, 
A1 als Ausgang definiert werden kann? Also nicht wie oben beide als PP 
Ausgang.

Muss ich dann per Register initialisieren um Ein- und Ausgänge an einem 
Port zu nutzen?


2. Da ich eine Delayfunktion suche, finde ich immer Hinweise zum 
SysTick.
Der SysTick_Handler ist nach meinen Recherchen in der stm32f10x_it.c zu 
finden.
Ich nutze CooCox 1.7.5 hier kann man *.h und *.c files über das 
Repository hinzufügen. Aber die stm32f10x_it.c kriege ich nicht ins 
Projekt.
Finde Sie auf meiner Festplatte auch nicht.

Kann mir jemand Schritt für Schritt erklären wie ich die Datei in mein 
Projekt kriege.

Das war es erst einmal.

Vielen Dank

Ersnt
(Firma: EleLa - www.elela.de) #3464777
Lesenswert?

Zu 1)
1
GPIO_InitTypeDef GPIO_InitStructure;
2

3
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; // Nur der eine Pin
6
GPIO_Init(GPIOA, &GPIO_InitStructure);
7

8
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // Nur der zweite Pin
10
GPIO_Init(GPIOA, &GPIO_InitStructure);
11

12

13
// Und jeder einzele Pin kann so parametriert werden.
14
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; // Zwei Pins gleichzeitig mit einer Funktion ausstatten
15
: : :

Zu2)
SysTick_Config() ist in der "core_cm3.h" drin und sollte somit bereits 
in Deinem Projekt eingebunden sein. Denn ein Systic ist ein Bestandteil 
vom Cortex-Core und keine ST Peripherie.
Gast #3464825
Lesenswert?

Danke euch!

zu 1)

[c]
GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; // Nur der eine Pin
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // Nur der zweite Pin
GPIO_Init(GPIOA, &GPIO_InitStructure);
[\c]

Ist so Pin A1 als PP Ausgang und Pin A0 als PullUp Eingang konfiguriert?
Also wird mit der Init Funktion nur die Änderung Pinweise übernommen und 
die vorhandene Config beibehalten ?
Sollte man vielleicht mal ins Tutorial aufnehmen?


Zu 2) O.K. ich muss den Handler nur irgendwo aufrufen

[c]
void SysTick_Handler(void)
{...}
[\c]


Es geht weiter ;)

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