Identifiant non défini
-
20-12-2019 - |
Question
Cela m'est arrivé plusieurs fois et j'essaie de comprendre la cause fondamentale de celle-ci.En bref, je reçois ces erreurs disant que quelque chose n'est pas défini mais aussi près que je peux dire que cela ne devrait pas être.Comme indiqué ci-dessous, j'ai inclus PIN_MAP.H qui, en ligne ~ 6580 définit les trois erreurs que je reçois (SSI1CLK, SS1RX et SS1TX étant indéfinie).
Dans mes propriétés du projet, j'ai inclus C: \ Stellarisware et avez-vous utilisé de définir plusieurs autres fichiers.Cela ne se produit qu'une fois de temps en temps et pour la vie de moi, je ne peux pas comprendre.Quelqu'un peut-il me dire ce que je fais mal?
Veuillez noter que j'utilise la carte d'évaluation LM3S2965 de TI avec code Compositeur 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);
}
Le fichier pin_map.h est très long, mais les définies en question sont les suivantes:
#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
L'erreur elle-même est:
Description Resource Path Location Type
#20 identifier "GPIO_PE0_SSI1CLK" is undefined SPI.c /Sandbox 1v1v1/SPI line 23 C/C++ Problem
La solution
Assurez-vous que PIN_MAP.H est en fait dans le répertoire piloteLib.En outre, y a-t-il des macros enroulées autour de ces définitions?Par exemple:
#ifdef SOME_MACRO
#define GPIO_PE0_SSI1CLK 0x00040002
#endif
Vous devrez peut-être avoir à #define "quelque_macro"