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

OP #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
}
OP #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

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.