Forum: Mikrocontroller und Digitale Elektronik STM32 Discovery Entwicklungsumgebung


von Felix L. (flex)


Lesenswert?

Hallo,

ich habe schon etwas länger ein STM32 Discovery Board, hatte aber keine 
Zeit mich damit zu beschäftigen. Jetzt möchte ich gerne ein bisschen 
damit arbeiten. Zur Zeit verwende ich für meine AVR´s Atmel Studio 6 und 
so etwas ähnliches suche ich auch für die STM32´s. CooCox habe ich schon 
gefunden, wollte aber fragen ob es noch bessere gibt.

Gruß
Felix

von Felix L. (flex)


Lesenswert?

Hallo,

ich habe mir jetzt einmal die Keil Demo (32k Begrenzung) geladen, 
bekomme aber kein Programm hin. Wie muss ich die Include Daten einfügen? 
Ich habe das Discovery mit dem 32F100RB.
Kann mir jemand helfen?

Gruß

von Googler (Gast)


Lesenswert?

Ich habe mir ein Auto gekauft, aber es fährt nicht. Hann mir jemand 
helfen?

Zeige dein vollständiges Programm, die Compiler Meldungen, usw.

von Felix L. (flex)


Lesenswert?

1
#include "stm32f10x_conf.h"
2
 
3
int main(void)
4
{
5
  GPIO_InitTypeDef GPIO_InitStructure;
6
 
7
  SystemInit();
8
 
9
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
10
 
11
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
12
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
13
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
14
  GPIO_Init(GPIOC, &GPIO_InitStructure);
15
 
16
  GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);
17
 
18
  while(1)
19
  {
20
  }
21
}

von Figlux E. (Firma: figlux electronix) (fuxl)


Lesenswert?

was passiert in systeminit(); ? startup skript`?

von Felix L. (flex)


Lesenswert?

Dieses Programm soll nur die LED anschalten.

Ich habe hier noch einen einfachen Code, dieser lässt sich aber nicht 
compilieren:
1
#include "stm32f10x.h"
2
3
int main(void)
4
{
5
do{
6
}while(1);
7
}

Fehlermeldung:
D:\Programme\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h(96): error:  #35: 
#error directive: "Please select first the target STM32F10x device used 
in your application (in stm32f10x.h file)"

Target not created

Gruß

von Thomas R. (Gast)


Lesenswert?

Felix L. schrieb:
> "Please select first the target STM32F10x device used
> in your application (in stm32f10x.h file)"


"Bitte wählen Sie zuerst die Zielplattform STM32F10x für Ihre Anwendung 
in dem File stm32f10x.h."

Wenn alle Fehlermeldungen so eindeutig und klar wären, wäre vieles 
einfacher.

von Hmm (Gast)


Lesenswert?

Haperts am Englisch oder wo ist das Problem?

"Please select first the target STM32F10x device used
in your application (in stm32f10x.h file)"

Bitte wählen Sie zuerst das Ziel STM32F10x processor der in Ihrer 
Anwendung benutzt wird (im stm32f10x.h file)

von Felix L. (flex)


Lesenswert?

Hallo,

ich habe schon in der stm32f10x.h gesucht, finde aber den stm32f100rb 
nicht.

Gruß

von Hmm (Gast)


Lesenswert?

>ich habe schon in der stm32f10x.h gesucht, finde aber den stm32f100rb
>nicht.

Schön. Hättest Du das gleich geschrieben, hätten wir uns eine Nachfrage 
gespart.

Und nun die nächste. Was steht denn drin?
Denke daran das Suffixe oft nur noch mit der Gehäuseform zu tun haben, 
sich aber die Prozessorstruktur nicht mehr unterscheidet.

von Felix L. (flex)


Lesenswert?

Jetzt kommt folgender Fehler:

hello_world.axf: Error: L6218E: Undefined symbol SystemInit (referred 
from startup_stm32f10x_md_vl.o).

von Felix L. (flex)


Lesenswert?

Ich habe den Fehler gefunden:
Es hat die Datei system_stm32f10x.c gefeht, aber warum?

von Hmm (Gast)


Lesenswert?

Seufz.
>Jetzt kommt folgender Fehler:
Was heisst: "Jetzt"? Nach der Änderung der Mondphase, oder was?

Was heisst "gefehlt"? Wo und warum hat sie gefehlt.

Programmieren ist halt nicht wie Plastikfutter in der Mikrowelle 
warmmachen. Da muss man schon mal die Gehinrwindungen in Tätigkeit 
setzen.

Führe uns hier nicht am Nasenring herum wie n'nen Bär. Gib uns, ohne das 
wir erst Nachfragen müssen, alle Informationen die auch Du hast.

von Felix L. (flex)


Lesenswert?

Hmm schrieb:
> Seufz.
>>Jetzt kommt folgender Fehler:
> Was heisst: "Jetzt"? Nach der Änderung der Mondphase, oder was?
>
> Was heisst "gefehlt"? Wo und warum hat sie gefehlt.
>
> Programmieren ist halt nicht wie Plastikfutter in der Mikrowelle
> warmmachen. Da muss man schon mal die Gehinrwindungen in Tätigkeit
> setzen.
>
> Führe uns hier nicht am Nasenring herum wie n'nen Bär. Gib uns, ohne das
> wir erst Nachfragen müssen, alle Informationen die auch Du hast.

Ich habe in der .h folgendes auskommentiert:
1
#define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */

von Hmm (Gast)


Lesenswert?

Ich geb's auf. Vielleicht hat ja jemand Anderer den Nerv.

von Felix L. (flex)


Lesenswert?

Ich habe bisher die ganze Zeit mit Atmel Studio 6 programmiert. Es ist 
doch klar, dass es bei einem komplett anderen Programm fragen gibt. Bei 
Atmel Studio bestimmt man beim anlegen eines neuen Projekts den 
Prozesson, genau so wie bei Keil. Aber bei Atmel Studio muss man nicht 
nich eine include "Prozessor" machen. Das ist das was mich irritiert.
In der stm32f10x.h gibt es viele verschiedene Prozessortypen. In einem 
Tutorial im Internet habe ich gelesen, dass man den #define 
STM32F10X_MD_VL nehmen muss. Das mit der Value Line verstehe ich, aber 
das MD nicht.

Gruß

von Bastler (Gast)


Lesenswert?

Lade dir doch die Discovery Software von ST runter.
Dort ist ein Projekt für KEIL dabei.
Einfach öffnen und loslegen.

Ich bin auf CooCox umgestiegen da es keine Codebegrenzung besitzt.
Dort lief alles problemlos.
Außerdem sind viiiiele Beispiele dabei!

von Felix L. (flex)


Lesenswert?

Bastler schrieb:
> Ich bin auf CooCox umgestiegen da es keine Codebegrenzung besitzt.
> Dort lief alles problemlos.
> Außerdem sind viiiiele Beispiele dabei

Hallo,

ich habe auch schon CooCox versucht, aber dort bekomme ich auch immer 
Fehlermeldungen:

BUILD FAILED
Could not launch D:\Programme\CooCox\CoIDE\gcc\bin\arm-none-eabi-gcc: 
java.io.IOException: Cannot run program 
"D:\Programme\CooCox\CoIDE\gcc\bin\arm-none-eabi-gcc" (in directory 
"D:\Programme\CooCox\CoIDE\workspace\Blink\Debug\obj"): CreateProcess 
error=2, Das System kann die angegebene Datei nicht finden
Total time: 0 seconds

Ist das ein Java Fehler?

Ich denke dass ich die 32k bei Keil nicht so schnell voll bekomme :D

von Bastler (Gast)


Lesenswert?

>Could not launch D:\Programme\CooCox\CoIDE\gcc\bin\arm-none-eabi-gcc:

Stimmt der Pfad?
Ist ARM-Gcc installiert?


Das einzige was ich einstellen musste war:

- Coocox installiert
- Arm GCC installiert
- Pfad für Arm Gcc angepasst
- Debugschnittstelle auf SWD eingestellt und Rate runtergestellt
- Neues Projekt erstellt (mit Beispiel von Coocox, z.B.: GPIO)
- Losgelegt..

von Thomas R. (Gast)


Lesenswert?

Wie man CooCox richtig installiert und in Betrieb nimmt ist auf deren 
Seite wunderbar beschrieben.
Das hatte ich gelesen und entsprechend hat alles zu 100.00% 
funktioniert.

Wenn ich das nicht gemacht hätte, wären bei mir genau die gleichen 
Probleme aufgetaucht.
Sind sie aber nicht.

von Felix L. (flex)


Lesenswert?

Bastler schrieb:
> Stimmt der Pfad?
> Ist ARM-Gcc installiert?

Der Pfad war falsch, jetz funktioniert es. Danke!

Gruß

von Schnupp (Gast)


Lesenswert?

Auf ST.com gibt es komplett fertige example Projekte und Templates für 
Keil exakt für dein Discovery. Bitte lade dir diese runter, dann geht 
auch alles.

von Felix L. (flex)


Lesenswert?

Schnupp schrieb:
> Auf ST.com gibt es komplett fertige example Projekte und Templates für
> Keil exakt für dein Discovery. Bitte lade dir diese runter, dann geht
> auch alles.

Danke. Jetzt funktioniert auch Keil! Jetzt muss ich micht nur noch 
entscheiden, mit welchem Compieler ich besser arbeiten kann.

Gruß

von Christoph H. (christoph_b)


Lesenswert?

habe auch mal eine Frage.

Habe mir das Board gekauft und nun die stm32f4_dsp_stdperiph_lib von STM 
heruntergaladen. In vielen Beispielen gibt im Main eine Zeile die 
auskommentiert ist und nur benötigt wird wenn man ein Display am Board 
angeschlossen hat.

Um welches Display geht es da??

Gruß Christoph

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

1. Bitte für ein neues Thema einen neuen Thread eröffnen

2. ist es sicherlich nicht zuviel verlangt, den Bereich der 
entsprechenden Zeile einzukopieren, damit wir hier nicht ständig die 
Glaskugel bemühen müssen oder in den vielen Beispielen mühsam nach 
irgendeiner auskommentierten Zeile suchen müssen.

Chris D.

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.