各位大牛好,在拿到DY-Tiva-BP的代码后,发现是基于kile开发的,我们进行了ccs环境下的移植,但是出现了一个无法解决的问题,在例程代码TIVA-demo\LCD下的文件,我们移植后在uc1701.h文件下的这串代码我们觉得宏定义应该不完整,在CCS下编译之后出现错误如下:
#20 identifier "LCD_GPIO_RESET" is undefined uc1701.c /lcd-demo/user line 603 C/C++ Problem
#20 identifier "LCD_PERIPH_RESET" is undefined uc1701.c /lcd-demo/user line 581 C/C++ Problem
#20 identifier "LCD_PIN_RESET" is undefined uc1701.c /lcd-demo/user line 603 C/C++ Problem
宏定义代码如下(在USE_DY_PB_3和USE_DY_PB_2下宏定义差异较大,在使用USE_DY_PB_3选项下编译出错的问题提示未定义变量在USE_DY_PB_2下定义了,但是调用USE_DY_PB_2是,警告变量重复申明):
#if defined(USE_DY_PB_3)
// CS : PA5 : CS0
// CD : PE0 : CD=0, command; CD=1, data
// BKL : PF3 : PWM
#define LCD_PERIPH_SPI_CS SYSCTL_PERIPH_GPIOA
#ifdef USE_DY_PB_FINAL
#define LCD_PERIPH_CD SYSCTL_PERIPH_GPIOB
#else // USE_DY_PB_FINAL
#define LCD_PERIPH_CD SYSCTL_PERIPH_GPIOE
#endif // USE_DY_PB_FINAL
#define LCD_GPIO_SPI_CS GPIO_PORTA_BASE
#ifdef USE_DY_PB_FINAL
#define LCD_GPIO_CD GPIO_PORTB_BASE
#else // USE_DY_PB_FINAL
#define LCD_GPIO_CD GPIO_PORTE_BASE
#endif // USE_DY_PB_FINAL
#define LCD_PIN_SPI_CS GPIO_PIN_5
#ifdef USE_DY_PB_FINAL
#define LCD_PIN_CD GPIO_PIN_3
#else // USE_DY_PB_FINAL
#define LCD_PIN_CD GPIO_PIN_0
#endif // USE_DY_PB_FINAL
#define LCD_PIN_SPI_PORT SSI2_BASE
#elif defined(USE_DY_PB_2)
// CS : PF2 : CS0
// CD : PF3 : CD=0, command; CD=1, data
// RESET:
#define LCD_PERIPH_SPI_CS SYSCTL_PERIPH_GPIOF
#define LCD_PERIPH_CD SYSCTL_PERIPH_GPIOF
//#define LCD_PERIPH_RESET SYSCTL_PERIPH_GPIOE
#define LCD_GPIO_SPI_CS GPIO_PORTF_BASE
#define LCD_GPIO_CD GPIO_PORTF_BASE
//#define LCD_GPIO_RESET GPIO_PORTE_BASE
#define LCD_PIN_SPI_CS GPIO_PIN_2
#define LCD_PIN_CD GPIO_PIN_3
//#define LCD_PIN_RESET GPIO_PIN_0
#define LCD_PIN_SPI_PORT SSI2_BASE
#define LCD_PERIPH_SPI_CS SYSCTL_PERIPH_GPIOB
#define LCD_PERIPH_CD SYSCTL_PERIPH_GPIOD
#define LCD_PERIPH_RESET SYSCTL_PERIPH_GPIOE
#define LCD_GPIO_SPI_CS GPIO_PORTB_BASE
#ifndef DY_PA5_FIX
#define LCD_GPIO_CD GPIO_PORTD_BASE
#else // DY_PA5_FIX
#define LCD_GPIO_CD GPIO_PORTA_BASE
#endif // DY_PA5_FIX
#define LCD_GPIO_RESET GPIO_PORTE_BASE
#define LCD_PIN_BKL GPIO_PIN_5
#define LCD_PIN_SPI_CS GPIO_PIN_2
#ifndef DY_PA5_FIX
#define LCD_PIN_CD GPIO_PIN_2
#else
#define LCD_PIN_CD GPIO_PIN_5
#endif
#define LCD_PIN_RESET GPIO_PIN_0
#define LCD_PIN_SPI_PORT SSI1_BASE
#endif // USE_DY_PB_2
xyz549040622:
不知道具体代码,无法判断。你看看MDK中USE_DY_PB_x的宏定义是不是在c/c++中宏定义的呢,MDK移植到CCS中,应该包含的路径和宏定义设置做好了,其他应该没什么问题的。