Hi, ich möchte bei einem STM32 Projekt in C folgendes Array definieren: uint8_t display[64][32]; Und dann den einzelnen Speicherzellen quasi Werte zur Laufzeit zuweisen: display[63][1]=0xFF Das schlägt mit Invalid Initalizer fehl, klar ich muss den Speicher für 64*32 Bytes erst reservieren nehme ich an? Sorry für die dumme Frage, aber ich hab gerade eine Denkblockade was malloc usw angeht. Hab das lange nicht mehr benötigt. Was muss ich genau tun, damit mein vorhaben gelingt?
Johannes M. schrieb: > as schlägt mit Invalid Initalizer fehl, Dann fehlt wohl stdint.h
Johannes M. schrieb: > Was muss ich genau tun, damit mein vorhaben gelingt? Den Fehler in Zeile 42 beheben, das fehlende Semikolon einfügen, oder den Originalcode mit der Originalfehlermeldung zeigen. Oliver
Compilermeldung ist folgende:
arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m4 -std=gnu11 -g3
-DUSE_HAL_DRIVER -DDEBUG -DSTM32L496xx -c -I../Core/Inc
-I../Drivers/STM32L4xx_HAL_Driver/Inc
-I../Drivers/STM32L4xx_HAL_Driver/Inc/Legacy
-I../Drivers/CMSIS/Device/ST/STM32L4xx/Include
-I../Drivers/CMSIS/Include -I../FATFS/Target -I../FATFS/App
-I../Middlewares/Third_Party/FatFs/src -O0 -ffunction-sections
-fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d"
-MT"Core/Src/main.o" --specs=nano.specs -mfpu=fpv4-sp-d16
-mfloat-abi=hard -mthumb -o "Core/Src/main.o"
../Core/Src/main.c:81:1: warning: data definition has no type or storage
class
81 | display[63][1]=0xFF;
| ^~~~~~~
../Core/Src/main.c:81:1: warning: type defaults to 'int' in declaration
of 'display' [-Wimplicit-int]
../Core/Src/main.c:81:1: error: conflicting types for 'display'
../Core/Src/main.c:79:9: note: previous definition of 'display' was here
79 | uint8_t display[64][32]={{0xFF}}; //Neues Array für 1
Displayfeld Bit 0=Rot,1=Gelb,2=Blau
| ^~~~~~~
../Core/Src/main.c:81:16: error: invalid initializer
81 | display[63][1]=0xFF;
| ^~~~
make: *** [Core/Src/subdir.mk:34: Core/Src/main.o] Error 1
"make -j4 all" terminated with exit code 2. Build might be incomplete.
Beitrag #6888523 wurde von einem Moderator gelöscht.
Ok, Fehler in Zeile 81. Du hast sehr wahrscheinlich die Zeile mit dem Fehler außerhalb einer Funktion stehen. Daher: Zeig den Code. Oliver
Asche auf mein Haupt, ich bin ein depp. Die Variable ist global definiert und ich hab die Zuweisung direkt danach außerhalb einer Funktion versucht. Ist damit erledigt.
Gast
#6888640
direkt bei der Definition einen Wert zuweisen.
1 | |
Der Rest wird automatisch auf 0 gesetzt (was bei global sowieso der Fall wäre).
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.