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

OP #5384541
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
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
}
OP #5384599
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
OP #5384643
@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

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.