Stm 32f4-discovery Ports aktivieren

Gast #2478038
Lesenswert?
• ▲
▼
Guten Tag,

ich hab mir jetzt ein stmf4 discovery board gekauft.
Ich dachte das es vom programmieren genau gleich bleiben würde,
wie bei dem Stm32-discovery.Da ich langsam am verzweifeln bin ein 
einfaches Testprogramm zuschreiben.Das Programm soll nur PD4 auf VCC 
ziehen.




mfg. Moritz Hännes
Gast #2478072
Lesenswert?
• ▲
▼
Im Grunde musst Du nur die äquivalenten Schritte gehen wie beim STM32F1 
(ich nehme an Du meinst den).

Systemtakt und Peripherietakt setzen
Datenrichtungsregister bzw. Portfunktion setzen.
Bit ausgeben.

Wo genau hakt es?
Stelle uns bitte eine konkrete Frage.
Gast #2478078
Lesenswert?
• ▲
▼
Also beim f1 ging es so:


        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);



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

        GPIOC->BRR = GPIO_Pin_3;
Gast #2478117
Lesenswert?
• ▲
▼
Hm. Leider wieder keine konkrete Frage.
Ich fürchte das Hauptproblem ist kein technisches sondern ein 
psychologisches. Am besten erstmal Abstand gewinnen und ein paar Stunden 
was ganz Anderes machen. Dann nochmal Schritt für Schritt prüfen.

Richtige Library? (Nicht die für den F1 sondern für den F4). Prozessor 
richtig gesetzt in den Compileroptinen und den Configurationsfiles? 
Schaltplan und Reference Manual mit der tatsächlichen Wirkung 
vergleichen. Sind die Register wirklich so gesetzt wie es nötig ist? 
(Simulator). Gegebenenfalls hier kompletten kompilierbaren Code oder 
sogar das Projekt als ZIP posten. Vorher ein Clean machen. Abgesehen 
davon hat etwa der IAR (hier fehlt uns Information darüber welchen 
Compiler Du verwendest) einige Macken. Clean und rebuild kann helfen.
Gast #2478149
Lesenswert?
• ▲
▼
Es geht ja schon so los , das ich keinen Anfang finde ich sitz seit
gestern 22 Uhr dran und bin am verzweifeln hab alle beispiel codes von
ST angesehn.So weit bin ich schon :

#include "stm32f4xx.h"



int main(void){


 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
 GPIO_InitTypeDef  GPIO_InitStructure;

 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOD, &GPIO_InitStructure);


}

Und weiter weiß ich nicht !
Meine Programme schreibe ich mit Atollic true studio.
Kann mir wer einen Beispiel Code zeigen ?
#2478696
Lesenswert?
• ▲
▼
Schalt erstmal eine LED ein- und aus, dann klappt es analog auch mit den 
anderen Ports. So etwa:
1
....
2

3
#define LD_3_AUS      GPIO_ResetBits(GPIOD,GPIO_Pin_13) /* orange LED */
4
#define LD_3_EIN      GPIO_SetBits(GPIOD,GPIO_Pin_13)
5

6
int main (void) {
7
  GPIO_InitTypeDef  GPIO_InitStructure;
8

9
  // GPIOD Takt freigeben
10
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
11

12
  // LED-GPIO als Ausgang konfigurieren
13
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
14
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
15
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
16
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
17
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;  // oder kleiner
18
  GPIO_Init(GPIOD, &GPIO_InitStructure);
19

20
  // LD_3_AUS;
21
  LD_3_EIN;
22
  while(1);
23
}

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.