Вопрос

Это произошло со мной несколько раз, и я пытаюсь выяснить корневую причину этого.В двух словах я получаю эти ошибки, говоря, что что-то неопределено, но, как можно ближе к тому, как я могу сказать, это не должно быть.Как показано ниже, я включил PIN_MAP.h, который, на линии ~ 6580 определяет все три ошибки, которые я получаю (SSI1CLK, SS1RX и SS1Tx, не определенный).

В моих свойствах проекта я включил C: \ STellarisware и использовал определенные из нескольких других файлов.Это происходит только один раз, и за жизнь меня я не могу понять это.Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так?

Обратите внимание, что я использую доску оценки LM3S2965 из Ti с Code Composer Studio.

#include "inc/lm3s2965.h"
#include "inc/hw_ints.h"
#include "inc/hw_ssi.h"
#include "inc/hw_memmap.h"
#include "inc/hw_nvic.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/ssi.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"

void init_SPI(void){

    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI1);
    GPIOPinConfigure(GPIO_PE0_SSI1CLK);
    GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,GPIO_PIN_1);
    GPIOPinConfigure(GPIO_PE2_SSI1RX);
    GPIOPinConfigure(GPIO_PE3_SSI1TX);

    GPIOPinWrite(GPIO_PORTE_BASE,GPIO_PIN_1,GPIO_PIN_1);

    SSIDisable(SSI1_BASE);
    GPIOPinTypeSSI(GPIO_PORTE_BASE, GPIO_PIN_3 | GPIO_PIN_2 |
                   GPIO_PIN_0);

    SSIConfigSetExpClk(SSI1_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,
                       SSI_MODE_MASTER, 1000000, 8);
    SSIEnable(SSI1_BASE);

}
.

Файл pin_map.h очень, очень длинный, но рассматриваемый определяемый:

#define GPIO_PE0_SSI1CLK        0x00040002
#define GPIO_PE0_CCP3           0x00040003
#define GPIO_PE0_EPI0S8         0x00040008

#define GPIO_PE1_SSI1FSS        0x00040402
#define GPIO_PE1_CCP2           0x00040404
#define GPIO_PE1_CCP6           0x00040405
#define GPIO_PE1_EPI0S9         0x00040408

#define GPIO_PE2_CCP4           0x00040801
#define GPIO_PE2_SSI1RX         0x00040802
#define GPIO_PE2_CCP2           0x00040805
#define GPIO_PE2_EPI0S24        0x00040808

#define GPIO_PE3_CCP1           0x00040C01
#define GPIO_PE3_SSI1TX         0x00040C02
#define GPIO_PE3_CCP7           0x00040C05
#define GPIO_PE3_EPI0S25        0x00040C08
.

Сама ошибка:

Description Resource    Path    Location    Type
#20 identifier "GPIO_PE0_SSI1CLK" is undefined  SPI.c   /Sandbox 1v1v1/SPI  line 23 C/C++ Problem
.

Это было полезно?

Решение

Убедитесь, что pin_map.h на самом деле в каталоге Driverlib.Кроме того, есть макросы, обернутые вокруг этих определений?Например:

#ifdef SOME_MACRO
    #define GPIO_PE0_SSI1CLK 0x00040002
#endif
.

Вам, возможно, придется #define "que_macro"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top