我是南京信息工程大学的学生,正在参加全国物联网竞赛,关于潘永华工程师在视频里的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的定义,请问是为什么呢?如果我自己定义的话该怎么修改呢?是定义什么类型的变量?