2016-12-23 2 views
-2

У меня есть определение структуры в файле platform.h:указателя ЬурейиХ структур не распознан

typedef struct { 
    VL53L0X_DevData_t Data; 
    uint8_t I2cDevAddr; 
    uint8_t comms_type; 
    uint16_t comms_speed_khz; 
    uint16_t devID; 
    I2C_HandleTypeDef * i2c_handle; 
} VL53L0X_Dev_t; 

И ЬурейаЯ к указателю, как это в том же файл:

typedef VL53L0X_Dev_t* VL53L0X_DEV; 

В другом файл, ссылка до VL53L0X_DEV не работает error: unknown type name 'VL53L0X_DEV' Я включил platform.h в этот файл. Что не так с этим?

EDIT

я застрял с помощью этого кода (много его), поставляемого поставщиком и, следовательно, существует не так много возможностей для покончив с указателем ЬурейиМ или для обеспечения примера MCVE , Вот соответствующий журнал сборки. Кажется, что он содержит файл vl53l0x_platform.h. Спасибо за вашу помощь!

1> >>Building build/vl53l0x_platform.o 
1> arm-none-eabi-gcc -ffreestanding -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-move-loop-invariants -g3 -nostartfiles -I"conf" -I"inc" -IC:/Users/sohail/Documents/Cloud/STM32Cube_FW_F4_V1.7.0/Drivers/STM32F4xx_HAL_Driver/Inc -IC:/Users/sohail/Documents/Cloud/STM32Cube_FW_F4_V1.7.0/Drivers/CMSIS/Include -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\lib\gcc\arm-none-eabi\4.9.3\include" -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\arm-none-eabi\include\sys" -I"C:\Users\sohail\Documents\gcc-arm_launchpad_binaries\arm-none-eabi\include" -std=gnu11 -c -o build/vl53l0x_platform.o src/vl53l0x_platform.c 
1> In file included from inc/vl53l0x_api.h:33:0, 
1>     from inc/main.h:44, 
1>     from inc/vl53l0x_platform.h:34, 
1>     from src/vl53l0x_platform.c:37: 
1> inc/vl53l0x_api_strings.h:39:39: error: unknown type name 'VL53L0X_DEV' 
1> VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev, VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo); 
1>          ^
+0

Проверьте предварительно обработанный код. –

+4

Вы должны опубликовать [MCVE] (http://stackoverflow.com/help/mcve) – LPs

+3

Полностью угадывание: некоторые из включенных включенных до того, как 'paltform.h' требует типа' VL53L0X_DEV'? Если да, то 'platform.h' должен быть на вершине других заголовков. – LPs

ответ

1

Из комментариев:

Вы, вероятно, имеют круговые зависимости на ваших заголовков.

Некоторые из них включают до platform.hVL53L0X_DEV тип? Если да, то platform.h должен быть на вершине других заголовков.

Если vl53l0x_api.h включен в platform.h, вы должны определить структуру до включения.

Смежные вопросы