Programmier-Einstieg mit STM32F103C8T - BluePill , kein Erfolg :(

#5384541
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
Angehängte Dateien:
Gast #5384571
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
}
#5384643
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

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