Forum: Projekte & Code stm32F4Discovery mit Coocox Beispielen und Quickstart


von Jo D. (Firma: Jo) (discovery)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Da ich mich in der letzten Zeit mit dem stm32F4 Discovery Board 
beschäftigt habe, sind einige einfache Beispielprojekte entstanden. 
Falls jemand einen schnellen Einstieg in Coocox + stm32F4 Discovery 
sucht, helfen eventuell die angehängten Daten.

Die angehängte Zip-Datei enthält folgende Daten:

- Kurzanleitung wie die Coocox-IDE zu installieren ist

- Eine Reihe von Beispielprojekten:

STM32F4_DMA_PWM:
Beispiel wie per DMA praktisch beliebig viele PWM Signale auf beliebigen 
Ausgabepins erzeugt werden können ohne Interrupt und ohne CPU-Belastung.

STM32F4_GPIO_INPUT_OUTPUT:
Die blaue Taste auf dem stm32F4Discovery wird abgefragt und eine LED 
geht an, sofern die Taste gedrückt ist

STM32F4_PWM:
Erzeugt zwei PWM-Signale per Timer

STM32F4_TIMER_INTERRUPT:
Ein Timer erzeugt einen Interrupt und eine LED blinkt

STM32F4_RANDOM_GENERATOR:
Der Zufallsgenerator wird initialisiert und es wird eine Zufallszahl auf 
der USART ausgegeben.

STM32F4_USART:
Ganze Strings mit Endezeichen werden interruptgesteuert empfangen und 
dann zurückgesendet.

STM32F4_ADC:
Der ADC wird angesteuert und gewandelte Werte über die USART versendet.

STM32F4_DAC:
Der DAC wird angesteuert und ein Spannungswert wird ausgegeben

STM32F4_DMA_USART:
Ein String wird per DMA über die USART ausgegeben

STM32F4_DMA_ADC:
Der ADC misst zwei Eingangskanäle und per DMA werden diese abgespeichert 
und per USART versendet.

STM32F4_DMA_DAC:
Eine Sinuskurve wird mittels DMA und DAC erzeugt

STM32F4_DMA_PORT:
Simples Beispiel für einen DMA-Transfer, welcher eine LED zum Blinken 
bringt.

PS: Natürlich kann es immer vorkommen, dass da noch Fehler drinn sind. 
Die Projekte sind nur als Einstieg gedacht und für Hinweise auf Fehler 
bin ich immer dankbar!

Gruß!
Jo

von HP (Gast)


Lesenswert?

Hallo Jo,

habe das heute Abend mal ein bisschen ausprobiert. Eine echt klasse 
Sache für einen Einsteiger. Bin grade dabei mich von der 8-Bit 
Arduino-Welt an ARM ranzutasten und habe das STM32F4-Discovery mit dem 
GPIO-Beispiel getestet. Klappt!

Besten Dank & Grüße,
HP

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

Hi HP,

freut mich das der Einstieg klappt. Ich habe jetzt jedoch festgestellt, 
dass noch einige der Examples fehlerhaft sind. :-(

Ich werde die korrigierten Projekte bei Gelegenheit nachreichen. Darum 
die Examples mit Vorsicht genießen und sie nur als groben Überblick 
verstehen. :)

Gruß
jo

von Stephan W. (stipo)


Lesenswert?

Danke Jo,
das ist dann mal eine erklärung, die man auch versteht ohne lange rum zu 
probieren wie man die Coocox IDE einrichtet.

Ich werde die Beispiele bei gelegenheit mal auf dem Discovery testen und 
erste eindrücke sammeln :)

von st (Gast)


Lesenswert?

@ jo

freut mich wenn es den Einstieg erleichtert. Ich habe jetzt jedoch 
festgestellt, dass die Projekte mit DMA etwas fehlerhaft sind bzw der 
Compiler da Murks macht.

Ich habe in der Anleitung geschrieben, dass Opimierungsstufe 3 
eingestellt werden soll. Nun habe ich aber festgestellt, dass es auch da 
Probleme geben kann. Woran das genau liegt habe ich noch nicht 
herausgefunden.

Das ganz simple Projekt mit dem Taster scheint aber immerhin zu 
funktionieren. ^^

Wie auch immer... ich werde demnächst die Projekte nochmal durchgucken 
und hier ein Update einstellen. Bis dahin gilt: Die Examples haben 
Fehler!


Gruß
Jo

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

sry, war nicht eingeloggt. ^^

st = jo

von Michael K. (damichl)


Lesenswert?

Hallo,


erst mal vielen Dank für die Beispiele.

Hast Du irgendwas an den Einstellungen in CooCox geändert?

Wenn ich sprintf aufrufe, bekomme ich einen Fehler:

undefined reference to `_getpid

Dieser tritt auch bei anderen CooCox Benutzern auf.

Bei Deinem Beispiel STM32F4_ADC funktioniert es aber.


mfg

Michael

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

@Michael,

in der Repository musst du noch den Punkt Retarget printf (führt 
automatisch dazu, dass auch „C Library“ markiert ist) auswählen.

Erst dann geht auch sprintf.

Ich werde die Tage ein Update der Examples einstellen mit einem 
erweiterten Quick-Start-Tut wo auch beschrieben wird wie ein neues 
Projekt erstellt wird. Da habe ich das auch nochmal drinn stehen.

Gruß
Jo

von vampire (Gast)


Lesenswert?

bemerke:
To printf float argument through UART, Semihosting or other 
communication method, you cannot use the Retarget Printf component in 
CoIDE. That component is a simple example for print int, char value.
bedeutet: -kein float
workaround:
http://www.coocox.org/forum/topic.php?id=1821

von Christoph H. (christoph_b)


Lesenswert?

@ Jo
Danke für die Beispiele. Ist es geplant die Liste zu erweitern?? 
Vieleicht um SPI und I2C ;-)))

von andre (Gast)


Lesenswert?

ich habe alles nach der Anleitung installiert
und wollte das Beispiel  „ GPIO_INPUT_OUTPUT“ Kompilieren leider
Funktioniert das bei mir nicht .
Vielleicht kann mir einer weiterhelfen


GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.7 2012q4\bin
compile:
    [mkdir] Created dir: D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\STM32F4_GPIO_INPUT_OUTPUT\Debug\
bin
    [mkdir] Created dir: D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\STM32F4_GPIO_INPUT_OUTPUT\Debug\
obj
       [cc] 6 total files to be compiled.
       [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall
-ffunction-sections -g -O3 -c -DSTM32F407VG -DSTM32F4XX
-DUSE_STDPERIPH_DRIVER -D__FPU_USED "-ID:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot" "-ID:\kay\CoIDE
Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis"
"-ID:\kay\CoIDE Projekte\Neuer Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT"
"-ID:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include"
"-ID:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib" "-ID:\kay\CoIDE
Projekte\Neuer Ordner\coocox" '"D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\startup\startup_stm32
f4xx.c"'  '"D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\main.c"' '"D:\kay\CoIDE
Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_rcc.c
"'  '"D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_gpio.
c"'  '"D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\system_stm32f4xx.c"'
'"D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_tim.c
"'
       [cc] In file included from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\main.c:21:
       [cc] D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning:
"__FPU_USED" redefined [enabled by default]
       [cc] <command-line>:0:0: note: this is the location of the
previous definition
       [cc] In file included from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_rcc.
h:31,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_rcc.c
:56:
       [cc] D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning:
"__FPU_USED" redefined [enabled by default]
       [cc] <command-line>:0:0: note: this is the location of the
previous definition
       [cc] In file included from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_gpio
.h:32,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_gpio.
c:79:
       [cc] D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning:
"__FPU_USED" redefined [enabled by default]
       [cc] <command-line>:0:0: note: this is the location of the
previous definition
       [cc] In file included from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\stm32f4xx.h:240:0,
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot\system_stm32f4xx.c:11
7:
       [cc] D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning:
"__FPU_USED" redefined [enabled by default]
       [cc] <command-line>:0:0: note: this is the location of the
previous definition
       [cc] In file included from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_boot/stm32f4xx.h:240:0,
       [cc] <command-line>:0:0: note: this is the location of the
previous definition
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\include/stm32f4xx_tim.
h:32,
       [cc] D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis/core_cm4.h:135:0: warning:
"__FPU_USED" redefined [enabled by default]
       [cc]                  from D:\kay\CoIDE Projekte\Neuer
Ordner\coocox\STM32F4_GPIO_INPUT_OUTPUT\cmsis_lib\source\stm32f4xx_tim.c
:114:
       [cc] Starting link
       [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles
-g -Wl,-Map=STM32F4_GPIO_INPUT_OUTPUT.map -O3 -Wl,--gc-sections
-LC:\CooCox\CoIDE\configuration\ProgramData\STM32F4_GPIO_INPUT_OUTPUT
-Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\STM32F4_GPIO_INPUT_OUTPU
T/arm-gcc-link.ld  -g -o STM32F4_GPIO_INPUT_OUTPUT.elf
..\obj\startup_stm32f4xx.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o
..\obj\stm32f4xx_gpio.o ..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_tim.o
       [cc] arm-none-eabi-gcc: error: unrecognized command line option
'-Wl'

BUILD FAILED

von vampire (Gast)


Lesenswert?

Versuch mal 1.5.1 mit deiner 4.7_2012q4, bis 1.6.2 fehlerfrei linkt;

von Michael F. (startrekmichi)


Lesenswert?

andre schrieb:
> [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles
> -g

das einzelne "-Wl" muss da weg.
Workaround: Mach die CoIDE-Projekt-Datei mit einem Texteditor auf (ist 
nämlich eigentlich ein xml-Dokument) und such nach dem -Wl. Dann einfach 
rauslöschen und das Projekt weider mit CoIDE öffnen.
Die anderen -Wl müssen aber drin bleiben ("-Wl,--gc-sections" usw), nur 
ein nacktes -Wl ohne optionen ist halt nicht erlaubt.

von andre (Gast)


Angehängte Dateien:

Lesenswert?

Damit gehts Versuch mal 1.5.1
Danke

so nun habe ich noch ein Frage ich möchte dieses Projekt im anhang 
Kompilieren.
Vielleicht kann mir da einer weiter helfen
danke

von andre (Gast)


Lesenswert?

Könnte mir mir denn von ihnen einer weiterhelfen das ich unter Coocox 
dies Projekt Kompilieren kann.

von andre (Gast)


Lesenswert?

Michael Frangenberg schrieb:
> Workaround: Mach die CoIDE-Projekt-Datei mit einem Texteditor auf (ist
> nämlich eigentlich ein xml-Dokument) und such nach dem -Wl. Dann einfach
> rauslöschen und das Projekt weider mit CoIDE öffnen.
> Die anderen -Wl müssen aber drin bleiben ("-Wl,--gc-sections" usw), nur
> ein nacktes -Wl ohne optionen ist halt nicht erlaubt.

Die CoIDE-Projekt-Datei habe ich mit einem Texteditor geöffnet konnte 
aber kein  -Wl finden,
In welcher Datei muss ich das -Wl entfernen



So konnte nun das Projekt Kompilieren aber es kommt in jeder zeile immer 
die Warnung: [-Wpointer-sign]



      [cc] D:\kay\Neuer Ordner\STM32F4 DISCOVERY LCD 
BOARD\stm32f4_example\libraries\embedded_gui_hal\inc/LcdHal.h:203:6: 
note: expected 'uint8_t *' but argument is of type 'char *'
       [cc] D:\kay\Neuer Ordner\STM32F4 DISCOVERY LCD 
BOARD\stm32f4_example\Libraries\Embedded_GUI_Library\src\graphicObject.c 
:2887:3:  warning: pointer targets in passing argument 3 of 
'GL_DisplayAdjStringLine' differ in signedness [-Wpointer-sign]

von vampire (Gast)


Lesenswert?

andre schrieb:
> aber es kommt in jeder zeile immer
> die Warnung: [-Wpointer-sign]

Wenn Du, wie empfohlen, die 1.5.1 verwendest, kannst du in dieser 
Version noch -Wall in der Kommandozeile des Compilers 
löschen(Configuration).
Es werden nichtmehr sich wiederholende Warnungen stur ausgegeben.

Ansonsten besagt diese Warnung eben genau das ;

von andre (Gast)


Lesenswert?

Danke erstmal, aber mit der Version 1.5.1 kann ich das Projekt aber 
nicht öffnen.
Deshalb nahm ich die 1.6.2

von tom (Gast)


Lesenswert?

Das -WI Problem ist ein Bug in der 1.6.2 CoIde:

http://www.coocox.org/forum/topic.php?id=2593

Auch würde ich empfehlen, den letzten 4.6 arm-gcc zu verwenden mit der 
1.6.2 CoIde version, ansonsten gibt es Probleme mit anderen 
Optimierungseinstellungen als -O0.

gutt lack

von rob (Gast)


Lesenswert?

Hallo,
Wie kann man den ein projekt was unter Keil erstellt wurde mit coocox 
1.5.1 öffnen , habe schon
überall gesucht aber nichts gefunden.

von vampire (Gast)


Lesenswert?

Zunächst:
coocox 1.5.1 kann mit µVision V4.14.4.0(meine derzeitig-verwendete) 
erstellte
*.uvproj öffnen.

Die neueren Versionen nicht(ein Kniefall vor dem mächtigen KEIL?);
Lad dir mal TFT_LCD_AN3241 von ST und öffne MDK-ARM.

Wenn dein "Keil"-proj in einer anderen Version vorliegt, musst Du es als 
µVision4 Projekt öffnen(bzw.abspeichern);

Du kannst µVision in diesem Fall zum erstellen nutzen, denn das .hex ist 
nur ~8kb groß;
Dann öffnest du CoIDE, schliesst ein event. vorhandenes Projekt und 
öffnest STM32F10x_LCDDrive.uvproj  ;
- rebuild
und es wird aufgelistet, welche Files du noch manuell unter Configurtion 
includen musst.

von rob (Gast)


Lesenswert?

Vielen Dank das werd ich mal versuchen .
Hab grade bei st.com geschaut finde dort nur eine TFT_LCD_AN3241 pdf und 
kein mdk Projekt
könnten sie mir einen Link geben.
Mfg

von vampire (Gast)


Lesenswert?

nimm die, ist durch SD-File um 1k zugroß für Keil;
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/an2790.zip

von rob (Gast)


Lesenswert?

Vielen dank.

von vampire (Gast)


Lesenswert?

-bitte!

von rob (Gast)


Lesenswert?

So bin dem Link gefolgt,
Habe das Projekt mit µVision 4.53.0.0 geöffnet(Kompillieren geht ja 
nicht weil zu gross) und gespeichert als µVision4 Projekt.
Ich kann das trotzdem mit coocox 1.5.1 nicht öffnen.

von vampire (Gast)


Angehängte Dateien:

Lesenswert?

Project --> Open project
(dann sollte die Frage erscheinen, ob ein Log erstellt werden soll) ;

von F. F. (foldi)


Lesenswert?

Fein!
Hatte mir gestern so ein Teil bestellt. :-)
Schankedön!

von rob (Gast)


Lesenswert?

Bei mir kommt nur ein Fenster wenn ich das Projekt öffne Fregt er
Convert MDK's Projekt into CoIDE ich klicke dann auf OK Fenster geht zu 
und das wars dann auch.
Projekt geht nicht auf

von bösewicht (Gast)


Angehängte Dateien:

Lesenswert?

warum nichtmal so ?

von rob (Gast)


Angehängte Dateien:

Lesenswert?

So habe das jetzt mal auf nen andere Rechner versucht mit dem gleichen 
ergebniss.

1.Gespeichert
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/an2790.zip

2.Keil geöffnet damit ich ein µVision4 Projekt erhalte.

3.CoIDE geöffnet FSMC_LCD.uvproj
  dann kommt das Fenster wie im anhang


Wiegesagt geht das nicht zu öffnen

von vampire (Gast)


Lesenswert?

erst beim schliessen wird das Keil-Projekt(uv2) als Project.uvproj 
konvertiert ond gespeichert;

von vampire (Gast)


Lesenswert?

hast du auch den Chip ausgewählt?

von vampire (Gast)


Lesenswert?

6. To open a MDK project, locate the directory of the project file with 
suffix of '. uvproj'.

Hab grad nachgesehen. Solltest du vielleicht auch -- !!!

bösewicht schrieb:
> warum nichtmal so ?

von rob (Gast)


Lesenswert?

vampire schrieb:
> 6. To open a MDK project, locate the directory of the project file with
> suffix of '. uvproj'.
>
> Hab grad nachgesehen. Solltest du vielleicht auch -- !!!
>
wo

von vampire (Gast)


Lesenswert?

CoIDE --> Help

von rob (Gast)


Lesenswert?

muss ich die endung umändern oder '. uvproj'.

von vampire (Gast)


Lesenswert?

vampire schrieb:
> erst beim schliessen wird das Keil-Projekt(uv2) als Project.uvproj
> konvertiert ond gespeichert;

von vampire (Gast)


Lesenswert?

vampire schrieb:
> erst beim schliessen wird das Keil-Projekt(uv2) als Project.uvproj
> konvertiert und gespeichert;

von rob (Gast)


Lesenswert?

vampire schrieb:
> vampire schrieb:
>> erst beim schliessen wird das Keil-Projekt(uv2) als Project.uvproj
>> konvertiert und gespeichert;

Das habe ich auch so gemacht.
Ich komme bis zum Fenster "Convert MDK`s Projekt into CoIDE"
ich drücke dann auf "OK"
aber danach Passiert garnixs .
was mache ich denn nur Falsch
.

von Falko (Gast)


Lesenswert?

Hallo Jo!

Da du schon Erfahrung mit dem DAC und DMA hast (STM32F4_DMA_DAC). 
Schafft man damit problemlos ein Sinussignal zwischen 500hz und 100kHz? 
Bräuchte ich für ein Projekt...

Gruß
Falko

von arm (Gast)


Lesenswert?

Falko schrieb:
> Hallo Jo!
>
> Da du schon Erfahrung mit dem DAC und DMA hast (STM32F4_DMA_DAC).
> Schafft man damit problemlos ein Sinussignal zwischen 500hz und 100kHz?
> Bräuchte ich für ein Projekt...
>
> Gruß
> Falko

100khz müsste man ausprobieren. Das hängt davon ab wie feinstufig deine 
Sinuskurve werden soll.

zu den DMA-Examples von oben:

Da sind noch einige kleinere Bugs enthalten. Bei DMA + DAC ist unter 
Anderem zu beachten die Struct Definitionen global zu halten. Das 
betrifft Coocox. Warum das so ist weiß ich nicht.

hier die Info (der 4+5 post):

http://www.coocox.org/forum/topic.php?id=2236

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

herrje das mit dem Anmelden muss ich wohl erst noch lernen ;))

arm = jo

von Fabian L. (fabls)


Lesenswert?

Hallo zusammen,

ich habe vor mir einen STM32Fx zuzulegen, denn bin gerade dabei eine 
Steuerplatine für ein Pedelec zu entwerfen.

Da hätte ich einige Fragen:

1.) Ist es ein freier Compiler bzw. eine freie Entwicklungsumgebung?

2.) Kann man die Ansteuerung von BLDC Motoren mit Hallsensoren 
Erkennung, damit mit "Leichtigkeit" (eventuell schon fertige bzw. 
halbfertige Codes/Beispiele) programmieren?

3.) Welchen STMFx würdet ihr mir empfehlen?


Ich bedanke mich jetzt schon ganz herzlich im voraus.



Freundliche Grüße
Fab

von Stefan W. (ahabakuk)


Lesenswert?

Zu 1. ja, es ist eine freie IDE, der Compiler GCC-Toolchain auch.

von Peter S. (psavr)


Lesenswert?

>3.) Welchen STMFx würdet ihr mir empfehlen?
Besorge Dir ein STM32F4-Discovery, da hast Du für wenig Geld ein 
Eval-System mit Programmer+Debugger und eine CPU mit mächtig viel Dampf 
unter der Haube!

von avr (Gast)


Lesenswert?

Hat jemand schon das USART-Beispiel schon getestet? Das funktioniert bei 
mir nicht: Der µC sendet nichts zurück. Das Signal kommt an, das konnte 
ich testen.

Tx des Usb2Serialkonverters hängt an PC11, Rx an PC10. Diese Pinbelegung 
geht aus dem Code hervor.

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

avr schrieb:
> Hat jemand schon das USART-Beispiel schon getestet? Das funktioniert bei
> mir nicht: Der µC sendet nichts zurück. Das Signal kommt an, das konnte
> ich testen.
>
> Tx des Usb2Serialkonverters hängt an PC11, Rx an PC10. Diese Pinbelegung
> geht aus dem Code hervor.

Hi!

der String den du an den µC sendest muss in dem Beispiel mit '\n' oder 
'\r' abgeschlossen werden. Dann sollte es eigentlich funktionieren.

Gruß
Jo

von Fallobst (Gast)


Lesenswert?

Ja, den string hab ich mit \r\n abgeschlossen.

Also funktioniert es bei dir?

von arm neuer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich versuche nun schon eine ganze Zeit lang ein MDK-ARM Projekt mit 
Coocox zu öffnen leider ohne Erfolg.
Das Projekt liegt als µVison4 vor.
Ich nutze CooCox1.5.1

Vielleicht könnte mir einer von ihnen das als Coocox Projekt erstellen 
wenn das geht.
mfg

von  arm neuer (Gast)


Lesenswert?

Scheinbar kann mir keiner Weiterhelfen
Mfg

von alex (Gast)


Lesenswert?

arm neuer schrieb:
> Hallo,
> Ich versuche nun schon eine ganze Zeit lang ein MDK-ARM Projekt mit
> Coocox zu öffnen leider ohne Erfolg.
> Das Projekt liegt als µVison4 vor.
> Ich nutze CooCox1.5.1
>
> Vielleicht könnte mir einer von ihnen das als Coocox Projekt erstellen
> wenn das geht.
> mfg

Damit der Kollege nicht allein da steht habe ich mir sein Projekt mal 
gezogen,
mit dem gleichen Ergebniss dass sich dass Projekt unter CooCo 1.5.1 
nicht öffnen lässt.
Da bis jetzt auf seine Anfrage keiner geantwortet hat gehe ich mal davon 
aus
das das ganze doch nicht so trivial ist .

Bis dann

von  arm neuer (Gast)


Lesenswert?

Könnte das denn mal jemand von ihnen Probieren
das  tft.rar unter Coocox zu öffnen.

von vampire (Gast)


Lesenswert?

ebenfalls erfolglos versucht;
- irgentwie ist es KEIL gelungen, das "Leck" in der sprudelnden 
Geldquelle zu stopfen;
-auch andere, neuere Keil-Projekte sind nicht übertragbar;

von vampire (Gast)


Lesenswert?

Du wirst wohl dies runterladen müssen;
-dort unter LCD-init die "else" für 5" / 7" -Display rauskopieren;
Beitrag "Re: STM32 GUI Library von ST"

von  arm neuer (Gast)


Lesenswert?

Gut das natürlich mist.
Kann ich ihre Lib denn auch für diese Board nutzen wenn mann die 
Pinbelegung anpasst
http://www.ebay.de/itm/Development-Board-STM32F103ZET6-Entwicklungs-Board-Development-Entwicklungsboard-/280895799698?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4166b1c192
Mfg

von vampire (Gast)


Lesenswert?

ich denke, das Board ähnelt(entspricht) diesem:
http://www.superkato.net/2012/11/21/china-stm32f103zet6-arm-cortexm3-eval-board-mit-7-lcd/
 und ist für 7"-Display ausgelegt;

von vampire (Gast)


Lesenswert?

hab grad die lcd test(7寸) mit µV4 compil. und auf mein Board 
(5"-Displ)geladen;
-zeigt sek. Farbwechsel --
(lässt sich nicht mit CoIDE öffnen)

von  arm neuer (Gast)


Lesenswert?

Ja genau ist dieses
Könnte ich ihre lib dafür verwenden.
>Du wirst wohl dies runterladen müssen; -dort unter LCD-init die "else" für 5" / 
7" -Display >rauskopieren; Beitrag "Re: STM32 GUI Library von ST"

Hab ich nicht gefunden

von vampire (Gast)


Lesenswert?

http://www.mikrocontroller.net/attachment/170560/Project_STM3210E-EVAL.7z
-dort stm3210e_eval_lcd.c --> void STM3210E_LCD_Init(void)
else ist die init-Sequenz;
- dann noch
  SSD1963_ClearScreen(LCD_COLOR_YELLOW );
  SSD1963_FillArea(60, 740, 40, 440, LCD_COLOR_BLUE2);
in main einfügen;

-wenn Du allerdings das Board hast, dann nimm die Keil Test_LCD (ist 
einfacher zu verstehen);

von  arm neuer (Gast)


Lesenswert?

Vielen Dank erstmal
Mfg

von vampire (Gast)


Lesenswert?

-bitte!
mfG

von Olli (Gast)


Lesenswert?

Hallo,
ich versuche mich gerade mit dem Discovery-Board in die STM32-Welt 
einzuarbeiten! (hierbei ein Dankeschön an den TE für die tollen 
Einführungs-Beispiele)
Meine Frage bezieht sich auf das Beispiel STM32F4_DMA_DAC. Und zwar 
hätte ich gerne gewusst, wie man die Ausgangsfrequenz des Sinus-Signals 
berechnet.
Bei den im Projekt verwendeten Timer-Einstellungen komme ich einfach 
nicht auf die gemessenen 932 Hz.
Hier die entsprechende Code-Sequenz des Timers:
1
void TIM6_Config(void)
2
{
3
  TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure;
4
  /* TIM6 Periph clock enable */
5
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
6
7
  /* Time base configuration */
8
  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
9
  TIM_TimeBaseStructure.TIM_Period = 255;
10
  TIM_TimeBaseStructure.TIM_Prescaler = 10;
11
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
12
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
13
  TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);
14
15
  /* TIM6 TRGO selection */
16
  TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);
17
18
  /* TIM6 enable counter */
19
  TIM_Cmd(TIM6, ENABLE);
20
}

Folgender Ansatz habe ich zur Berechnung herangezogen:

APB1(42Mhz)/ (11*256*32(Anzahl Sinuswerte)) = 466 Hz, was genau der 
halben gemessenen Frequenz entspricht.

Wo liegt mein Denkfehler?

MFG OLLI

von Jo D. (Firma: Jo) (discovery)


Lesenswert?

Hi Olli,

Die Frequenz mit der dein Timer gespeist wird beträgt 84MHz und nicht 
42MHz.
Irgendwo im Datenblatt kann man das nachlesen, dass der Timer 
entsprechend getaktet wird (bin grad zu faul nachzugucken wo).

Schau mal hier (da ist schon jemand in die gleiche Falle getappt):
Beitrag "STM32F4-Discovery: Timereinstellung passt nicht zur Frequenz"

Gruß!
Jo

von Olli (Gast)


Lesenswert?

Perfekt danke!!! dann passt ja alles!;)
ich hab das im Reference Manual nachschlagen können (Seite 85). in dem 
"Clock Tree" steht, dass der APBx noch mit x2 multipliziert wird!!

von mj (Gast)


Lesenswert?

Hallo,


ich habe das UART Beispiel hier auch ausprobiert und das Problem 
gefunden:

void UART_SEND_TEXT_EXAMPLE(char *buffer)
{
  while (*buffer)
  {
    UART_SEND_EXAMPLE(*buffer);
    buffer++;
  }
}

der Compiler hat ein Problem mit while (*buffer); wenn man das 
ausklammert funktioniert kommt ein Zeichen zurück, also schein die 
Auswertung *buffer immer auf 0 zu kommen, nur warum passiert das??? Wie 
kann so etwas Elementares nicht funktionieren?

von mj (Gast)


Lesenswert?

Die Optimierung O3 muß ausgeschaltet werden, dann funktioniert das 
UART-Beispiel. Die Senderoutine sollte noch umgestellt werden:

void UART_SEND_EXAMPLE(char byte)
{
    /* Wait until ready */
    while (USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET){}
    USART_SendData(USART3,byte);
}


sonst wird z.B. bei einer Startmeldung

...
        //nun Text auf der ser. Schnittstelle empfangen und 
zurücksenden.
  UART_SEND_TEXT_EXAMPLE("Start\n");
  while(1)
...


das erste Byte falsch ausgegeben

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.