Forum: Mikrocontroller und Digitale Elektronik IDv3 Tag auslesen Stm32f4


von Klaus (Gast)


Lesenswert?

Hallo leute,

Ich stehe vor einem Problem. Ich möchte mit meinem STM32f4 Board den 
IDv3 Tag einer MP3 Auslesen. Erst mal nur den Titel. Ich habe dazu schon 
folgenden Code entworfen
1
 UB_Fatfs_ReadBlock(&myFile, buff1 , 10 , j);
2
3
        for (i = 0 ; i < 10; i++)
4
        {
5
6
           if (buff1[i] == 0x49 && buff1[i+1] == 0x44)//Nach idv3 tag suchen
7
           {
8
             GUI_Text(0,0,"Gefunden",Blue, Black);
9
10
               UB_Fatfs_ReadBlock(&myFile, buff1 , 150 , j);
11
12
               for (q = 0 ; q < 150 ; q++)///
13
               {
14
                 if (buff1[q] == 84 && buff1[q+1]== 73 && buff1[q+2]== 84 && buff1[q+3] == 50)//nach der abkürzung für Titel suchen
15
                     {
16
17
18
                   GUI_Text(0,100,"Gefunden",Blue, Black);
19
20
                   q = q +4 ;
21
22
                      //while(buff1[q] != 0x54 && buff1[q+1] != 0x41 && buff1[q+2] != 0x4c && buff1[q+3] != 0x42)
23
                      for ( q = q ; q < 150 ; q ++)
24
25
                   {          if (buff1[q] != 0x00)
26
                        if (buff1[q] == 0x54 && buff1[q+1] == 0x41 &&  buff1[q+2] == 0x4C && buff1[q+3] == 0x42 )// Titel auslesen Bis zur Nächsten abkürzung
27
                        {
28
                        goto fertig;
29
                        }else
30
31
                        {
32
                        Name[nam]= buff1[q];
33
34
                        nam++;
35
                        }
36
                        //q++;
37
                      }
38
39
40
41
42
43
                     }
44
45
                     }//
46
47
48
               }
49
50
51
           }
52
53
fertig:
54
        GUI_Text(0,132,Name,Black,Blue);


Das Programm findet immer den Tag und auch die Titel Position. 
Allerdings habe ich bei jedem Mal einschalten eine andere Ausgabe Des 
Strings Name. Mit vielen verrückten Sonderzeichen. Eigentlich soll das 
Programm nur die Abkürzung TIT2 suchen und dann alle Zeichen bis auf 
nullen auf dem LCD ausgeben bis es zu TALB gekommen ist und dann das 
Programm beenden. Wie gesagt der Titel steht auch auf dem LCD nur 
dahinter kommen noch 2 Zeilen quatsch. Ich wäre euch über jede Hilfe 
dankbar!

MfG Klaus

von holger (Gast)


Lesenswert?

>Wie gesagt der Titel steht auch auf dem LCD nur
>dahinter kommen noch 2 Zeilen quatsch.

Dann solltest du Name[] mal mit einer 0 am Ende abschliessen
bevor du es ausgiebst.

von Klaus (Gast)


Lesenswert?

Danke! Für die schnelle antwort! Hat super funktioniert.
Hat einer vielleicht noch einen Tipp wie man den Tag leichter oder 
besser gesagt mit weniger Code auslesen kann? Denn meine Ganzen 
for-schleifen und If bedingen sind schon bisschen viel.

Mfg
Klaus

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.