STM32CubeIDE knas *Löst*
Postat: 7 oktober 2024, 18:28:07
Programmerar ett projekt. Det är ett äldre projekt som jag ska modernisera en del samt senare införa nya funktioner.
Det består av alla HAL-filer i ett gemensamt bibliotek då det i grunden finns 2-3 projekt som baseras på samma kretslopp med några få ändringar, typ 1 eller 2 ADC-kanaler osv.
Jag har fixat kommandotolken och jag sitter nu med ett problem som jag helt inte fattar.
I filen "STM32G0xx_HAL.h" används en typdef som är:
typedef enum
{
HAL_OK = 0x00U,
HAL_ERROR = 0x01U,
HAL_BUSY = 0x02U,
HAL_TIMEOUT = 0x03U
} HAL_StatusTypeDef;
Denna typdef finns i filen "STM32G0xx_HAL_DEF.h" som såklart inkluderas innan den används.
Jag har testat att lägga in en:
#pragma message "skriv något här"
Det visar att "STM32G0xx_HAL_DEF.h" inkluderas av "STM32G0xx_HAL.h"och används i sin helhet.
Problemet kommer när en funktion definieras:
HAL_StatusTypeDef HAL_Init(void); // Felar
HAL_StatusTypeDef HAL_DeInit(void); // Felar
void HAL_MspInit(void); // OK
void HAL_MspDeInit(void); // OK
HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); // Felar
Felmeddelandet:
../Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal.h:735:1: error: unknown type name 'HAL_StatusTypeDef'
735 | HAL_StatusTypeDef HAL_Init(void);
Jag har uppgraderat min kompiler till nyaste version och jag fattar inte vad fan den gnäller för.
Min uppfattning är att "HAL_StatusTypeDef" inte uppfattas som en "verklig" variabel/funktion.
Problemet är så att det har fungerat tidigare - men inte nu.
Jag har stångad mig tokig på detta, det enda jag omedelbart kan komma på är att byta "HAL_StatusTypeDef" till t.ex. uint8_t och sedan se om det går bra.
Men jag är rimlig säker på att man har använd den typedef för att göra skrivningen enklare/tydligare.
"HAL_StatusTypeDef" används till många funktioner så det ville ju vara bäst att det blir en fix med "HAL_StatusTypeDef".
Så finns det några tips på en vettig lösning?
Det består av alla HAL-filer i ett gemensamt bibliotek då det i grunden finns 2-3 projekt som baseras på samma kretslopp med några få ändringar, typ 1 eller 2 ADC-kanaler osv.
Jag har fixat kommandotolken och jag sitter nu med ett problem som jag helt inte fattar.
I filen "STM32G0xx_HAL.h" används en typdef som är:
typedef enum
{
HAL_OK = 0x00U,
HAL_ERROR = 0x01U,
HAL_BUSY = 0x02U,
HAL_TIMEOUT = 0x03U
} HAL_StatusTypeDef;
Denna typdef finns i filen "STM32G0xx_HAL_DEF.h" som såklart inkluderas innan den används.
Jag har testat att lägga in en:
#pragma message "skriv något här"
Det visar att "STM32G0xx_HAL_DEF.h" inkluderas av "STM32G0xx_HAL.h"och används i sin helhet.
Problemet kommer när en funktion definieras:
HAL_StatusTypeDef HAL_Init(void); // Felar
HAL_StatusTypeDef HAL_DeInit(void); // Felar
void HAL_MspInit(void); // OK
void HAL_MspDeInit(void); // OK
HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority); // Felar
Felmeddelandet:
../Drivers/STM32G0xx_HAL_Driver/Inc/stm32g0xx_hal.h:735:1: error: unknown type name 'HAL_StatusTypeDef'
735 | HAL_StatusTypeDef HAL_Init(void);
Jag har uppgraderat min kompiler till nyaste version och jag fattar inte vad fan den gnäller för.
Min uppfattning är att "HAL_StatusTypeDef" inte uppfattas som en "verklig" variabel/funktion.
Problemet är så att det har fungerat tidigare - men inte nu.
Jag har stångad mig tokig på detta, det enda jag omedelbart kan komma på är att byta "HAL_StatusTypeDef" till t.ex. uint8_t och sedan se om det går bra.
Men jag är rimlig säker på att man har använd den typedef för att göra skrivningen enklare/tydligare.
"HAL_StatusTypeDef" används till många funktioner så det ville ju vara bäst att det blir en fix med "HAL_StatusTypeDef".
Så finns det några tips på en vettig lösning?