Forum: Compiler & IDEs Programmier-Einstieg mit STM32F103C8T - BluePill , kein Erfolg :(


von Gerhard H. (oderlachs)


Angehängte Dateien:

Lesenswert?

Hallo Freunde !
Bestimmt werden die Experten lachen, aber ich quäle mich seit Tagen 
damit ab,  die Led(PC13) auf dem BluePill Board zum leuchten oder gar 
zum Blinken zu bekommen.
Mit viel Mühe habe ich das "System Workbench für STM32" eingerichtet, 
weil immer was mit meiner Linux-Version war, um ST-flash/ST-link usw. zu 
installieren. (Linux Mint-18.3 64-Bit)

Nun kann ich erst mal flashen per ST-Link.v.2 und auch den einfachen 
Code compilieren/linken usw.
Aber bestimmt sind meine Gedankengänge, um ein lauffähiges Programm zu 
erstellen, compiliere....flashen noch falsch.
Ich habe mal den kompletten Projektordner gezipt und als Anhang gemacht.
Vielleicht ist ja wer so gütig sich das mal anzusehen, um mich auf meine 
noch  bestimmt grundlegenden Fehler hinzuweisen.

Die Befehle für Initialisierung/Setzen/Reset der GPIO's usw. habe ich 
mir hier im dem Forum aus der STM32 Anleitung genommen. Bestimmt 
verkenne ich da noch die Zusammenhänge.
Es ist ja mein Erstlingswerk auf dieser Ebene.

Gruss und Dank Gerhard

von Mitlesa (Gast)


Lesenswert?

Versuchs mal so:
1
void initPort (void)
2
{
3
  GPIO_InitTypeDef GPIO_InitStructure;
4
5
  RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOC, ENABLE); // Clock des Ports einschalten
6
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
7
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
8
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
9
10
  GPIO_Init(GPIOC, &GPIO_InitStructure);
11
}

Also erst Peripherie-Clock einschalten, dann GPIO Init.

Dann dürfte dein Delay noch zu schnell sein.
1
void _delay (int a)
2
{
3
  volatile uint32_t i,j;
4
  for (i=0; i<a; i++)
5
  {
6
    j = 100;
7
    while (j--);
8
  }
9
  return;
10
}

von Gerhard H. (oderlachs)


Lesenswert?

Vielen Dank !!!!
Werde ich probieren, wie gesagt ist mein erstes Wagnis. Bücher/Anleitung 
für Code habe ich nur in englisch(Amazon Kindle) und englisch ist noch 
fast ein Buch mit 7+1 Siegeln, ausser dem Code vielleicht.

Gruss und Freu :)

Gerhard

von Daniel V. (voda) Benutzerseite


Lesenswert?

Es gibt sehr gute deutschsprachige Tutorials:

Der Klassiker:

http://www.diller-technologies.de/stm32.html

Und das m.M sehr gute Videotutorial von Ultr@fx:

https://www.youtube.com/playlist?list=PLd79x-uW4uyZUTnuAxnIBFj56JhK5io3g

Gruß
Daniel

von Gerhard H. (oderlachs)


Lesenswert?

@Daniel
Danke Daniel ich werde schauen...nur mit Videoanleitungen, da habe ich 
es nicht so....

@Mitlesa:

Es hat geklappt, ich habe diese Zeile an den Anfang der "initPort" 
gelegt :)
1
void initPort( void ) {
2
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // Clock des Ports einschalten(!!)
3
      GPIO_InitTypeDef GPIO_InitStructure;
4
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
5
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //org _PP
6
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
7
      GPIO_Init(GPIOC, &GPIO_InitStructure);
8
      // RCC_HSEConfig(RCC_HSE_ON); //Aktiviert den Externen Highspeed Oszillator (Quarz).
9
      RCC_HSICmd(ENABLE); //Aktiviert den internen Highspeed Oszillator.
10
}

Vielen Dank Euch beiden

Gerhard

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.