This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

全国大学生物联网竞赛 YEELINK的DEMO问题



我是南京信息工程大学的学生,正在参加全国物联网竞赛,关于潘永华工程师在视频里的DEMO程序,我下载来后,编译出现多错误,不知道是为什么,请大神帮忙解答

1、

代码197行:

#ifdef __CCS__

unsigned char pucCC3000_Rx_Buffer[CC3000_APP_BUFFER_SIZE + CC3000_RX_BUFFER_OVERHEAD_SIZE];

#elif __IAR_SYSTEMS_ICC__

__no_init unsigned char pucCC3000_Rx_Buffer[CC3000_APP_BUFFER_SIZE + CC3000_RX_BUFFER_OVERHEAD_SIZE];

#endif

这一段代码在CCS环境中提示错误:变量pucCC3000_RX_Buffer没有定义,相当于跳过了,我是用了TIvaware里的Examples的定义方法:

// Code Composer Studio pragmas.
//
#if defined(__CCS__) || defined(ccs)
uint8_t pucCC3000_Rx_Buffer[CC3000_APP_BUFFER_SIZE +
CC3000_RX_BUFFER_OVERHEAD_SIZE];

//
// IAR Codebench, aka ewarm pragmas.
//
#elif defined(__IAR_SYSTEMS_ICC__) || (ewarm)
__no_init uint8_t pucCC3000_Rx_Buffer[CC3000_APP_BUFFER_SIZE +
CC3000_RX_BUFFER_OVERHEAD_SIZE];

//
// Code Sourcery, GCC, and Keil all use the same pragmas.
//
#else
uint8_t g_pui8CC3000_Rx_Buffer[CC3000_APP_BUFFER_SIZE +
CC3000_RX_BUFFER_OVERHEAD_SIZE];
#endif

这样定义之后没有出现出错,char和unit8_t的定义区别是什么?我在前面更改了定义的类型,会不会对后面的pucCC3000_RX_Buffer造成影响?

2、Init_spi();

在潘永华工程师的initDriver(void);函数里,对spi的初始化没有给参数,也就是inti_spi();这样开发环境提示错误,提示too few arguments,请问这是因为什么?我按照官方的basic_wifi_application修改为init_spi(1000000,SysCtlClockGet());修改后没有错误。

3、在代码的1000行:

case UART_COMMAND_CLOUD_START_TEST:
char testInfo[] = "Start Cloud demo show.....................\r\n";
DispatcherUartSendPacket(testInfo, sizeof(testInfo));

SetupSensorDataPointMessage();

这个case被提示错误,

Description Resource Path Location Type
#1148 a declaration cannot have a label cc3000_basic_wifi_application.c /cc3000_basic_wifi_application line 1012 C/C++ Problem

按照网上的一些相似错误,我用{ }将case后的语句

char testInfo[] = "Start Cloud demo show.....................\r\n";
DispatcherUartSendPacket(testInfo, sizeof(testInfo)) 括了起来,

但是后面的所有DispatcherUartSendPacket()调用都提示错误!!

4、在main函数部分

memset(g_ucUARTBuffer,0xFF,UART_IF_BUFFER);

uart_have_cmd=0;

开发环境在编译后提示没有indeification,代码中确实没有

g_ucUARTBuffer,UART_IF_BUFFER以及uart_have_cmd的定义,请问是为什么呢?如果我自己定义的话该怎么修改呢?是定义什么类型的变量?