Forum: Mikrocontroller und Digitale Elektronik Probleme mit STM32F4 Libs


von J. T. (chaoskind)


Lesenswert?

MoinMoin,
ich versuche grad, mich ein wenig in die 32bittige Welt einzuarbeiten. 
Ich arbeite mit AtollicTrueStudio 5.0 Lite und mit dem STM32F429 
DiscoveryBoard. Ich wollte nun das auf dem Display ausgaben machen, hab 
aber schon Probleme, die Libs einzubinden.

Die Libs um die es geht befinden sich im selben Ordner, und werden auch 
im Projekt-Pfad als vorhanden angezeigt. Ich hatte sie erst mit #include 
tm_stm32f4_ili9341 eingebunden, aber da war dann ein rotes x vor den 
nicht gefundenen. Dann hab ich die Libs in den Projektordner kopiert, 
und die xs sind verschwunden.

Dennoch meckert er beim Compilierversuch das es keine tm_stm32f4_ili9341 
geben würde, dabei liegt sie im selben Ordner wie bspw die 
tm_stm32f4_fonts.

Also prinzipiell findet er die Libs, nur bei der ili9341 klappt es halt 
nicht. Hat da jdm einen Rat, wodran es liegen könnte?

P.S.
hier der Code, falls die Betriebblindheit mich wieder einen Tippfehler 
übersehen lässt.
1
#include "stm32f4xx.h"
2
#include "stm32f4xx_spi.h"
3
#include "defines.h"
4
#include "tm_stm32f4_ili9341.h"
5
#include "tm_stm32f4_fonts.h"
6
#include <stdio.h>
7
8
int main(void) {
9
    //Initialize system
10
    SystemInit();
11
12
    //Initialize ILI9341
13
    TM_ILI9341_Init();
14
    //Rotate LCD for 90 degrees
15
    TM_ILI9341_Rotate(TM_ILI9341_Orientation_Landscape_2);
16
    //FIll lcd with color
17
    TM_ILI9341_Fill(ILI9341_COLOR_MAGENTA);
18
    //Draw white circle
19
    TM_ILI9341_DrawCircle(60, 60, 40, ILI9341_COLOR_GREEN);
20
    //Draw red filled circle
21
    TM_ILI9341_DrawFilledCircle(60, 60, 35, ILI9341_COLOR_RED);
22
    //Draw blue rectangle
23
    TM_ILI9341_DrawRectangle(120, 20, 220, 100, ILI9341_COLOR_BLUE);
24
    //Draw black filled rectangle
25
    TM_ILI9341_DrawFilledRectangle(130, 30, 210, 90, ILI9341_COLOR_BLACK);
26
    //Draw line with custom color 0x0005
27
    TM_ILI9341_DrawLine(10, 120, 310, 120, 0x0005);
28
29
    //Put string with black foreground color and blue background with 11x18px font
30
    TM_ILI9341_Puts(65, 130, "STM32F4 Discovery", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2);
31
    //Put string with black foreground color and blue background with 11x18px font
32
    TM_ILI9341_Puts(60, 150, "ILI9341 LCD Module", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2);
33
    //Put string with black foreground color and red background with 11x18px font
34
    TM_ILI9341_Puts(245, 225, "majerle.eu", &TM_Font_7x10, ILI9341_COLOR_BLACK, ILI9341_COLOR_ORANGE);
35
36
    while (1) {
37
38
    }
39
}

P.P.S.

im Quelltext selbst steht neben dem Include der ili9341 auch ein rotes 
x, aber halt nicht im Projektpfad...
MfG Chaos

von Grundschüler (Gast)


Lesenswert?

Der Einstieg mit dem F429-board geht am leichtesten mit 
http://mikrocontroller.bplaced.net/wordpress/?page_id=2692

Wenn libs nicht gefunden werden hilft die Angabe des kompletten Pfades 
beim #include.

von J. T. (chaoskind)


Lesenswert?

Danke dir für die Antwort, aber wenn ich den kompletten Pfad angebe, 
dann ist nicht nur im Quelltext das x, dann kommt auch wieder in diesem 
Outline"Pfad" das Dreieck mit Ausrufezeichen, das auf nicht gefunden 
hinweist.

Ohne den kompletten Pfad ist das Dreieck in Outline weg, als würde er 
die Datei finden, aber im Quelltext selbst bleibt das x....

von J. T. (chaoskind)


Lesenswert?

So, nachdem ich den Pfad nun richtig angegeben habe, ist zwar das x auch 
im Quelltext verschwunden, dennoch meckert der Compiler, die Datei wäre 
nicht da.

Aber langsam verstehe ich überhaupt nichts mehr. Wenn ich den ganzen 
Pfad mit \ trenne, dann meckert er die ili9341 wäre nicht da, sagt aber 
zur tm_stm32_font nichts (ich include erst die ili, dann die font), 
trenne ich aber mit / dann findet er die ili, aber dann meckert er, die 
font wäre nicht da... wobei sie wie gesagt im selben ordner liegen

von J. T. (chaoskind)


Lesenswert?

Nun habe ich mir von ST das STSW-STM32138 STM32F429 discovery firmware 
package (UM1662) runtergeladen, da sind Beispiele drin, unter anderem 
auch fürs TrueStudio, jedoch werden die nicht geöffnet.... Wenn ich das 
Projectfile öffne, öffnet er zwar das Studio, aber öffnet dann nicht das 
Project sondern lediglich Projectfile, das mir dann als xml oder sowas 
in der Richtung angezeigt wird.... Auch wenn ich auf Project klicke, 
bleibt das Feld "Open Project" grau. Kann das sein, das man mit der 
Lite-Version keine Projekte öffnen kann? Wäre das nicht, nunja 
suboptimal? Ich ging davon aus, das es nur die 32kb begrenzung gibt.

Mit verwirrten Grüßen,
Chaos

von Grundschüler (Gast)


Lesenswert?

nimm coide/bplaced, das funktioniert.

von J. T. (chaoskind)


Lesenswert?

Das hatte ich vor einiger Zeit auch mal in Benutzung (das ist doch 
dieses Coocox? oder wie es sich schreibt?) und hatte damit ganz ähnliche 
Probleme, Libs wurden nicht gefunden, obwohl sie includiert, ins Project 
eingebunden und im richtigen Pfad lagen... War aber noch auf nem 
XP-System, inzwischen bin ich bei 8.1 gelandet. Naja ich werds mir 
morgen nochmal installieren und schauen ob ich damit nun besser 
klarkomme. Für heute erst mal genug. =)

Nochmal Danke für deine Tipps, ich werd mich dann wohl morgen nochmal 
melden

von Grundschüler (Gast)


Lesenswert?

versuch mal eine leere datei test.h einzubinden. Ich vermute dein 
Problem beim compilieren der *.c Dateien.

Bei bp/coide funktioniert der Projektexplorer nicht richtig.  Bevor man 
im Projektexplorer Dateien aufruft, muss man sie im Windowsexplorer 
anlegen.

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.