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.

[参考译文] CCS/TM4C123GH6PM:错误#10234-D 未解析的符号仍然存在。

Guru**** 2455560 points
Other Parts Discussed in Thread: TM4C123GH6PM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/641154/ccs-tm4c123gh6pm-error-10234-d-unresolved-symbols-remain

器件型号:TM4C123GH6PM

工具/软件:Code Composer Studio

我正在尝试通过 ESP8266与 Android 和 TM4C123GH6PM 进行通信。

但是、尽管   我在 utils  文件夹中有 uartstdio.h 和 uartstdio.c、但我收到错误#10234。 和  UARTStdioConfig、 UARTprintf  均已明确定义。

我的代码是

//-------- main.c ----------------
#include 
#include 
#include 
include "inc/hw_gpio.h"
#include "static/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_ints.h"
#include "driverlib/fpu.h"
#include "driverlib/driverlib.h"









;包含"driverlib.trature.dline"#driverlib#driverlib.dline.h";包含"driverlib#driverlib#driverlib#driverlib#driver.h"命令#driverlib#driverlib#driverlib.util.h";包含"driverlib#driverline.h"#driverlib#driverlib#driverlib#driverline.h"






char *子字符串(char * src、char * dst、int start、 int stop);
int SearchIndexOf (char src[]、char str[]);
char* itoa (int i、char b[]);
void ftoa (float f、char * buf);
#define period 320000 //(16000000/50) 50Hz
void InitUART (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
GPIOPinConfigure (GPIO_PA0_U0RX);
GPIOPinConfigure (GPIO_PA1_U0TX);
GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
UARTClockSourceSet (UART0_BASE、UART_CLOCK_PIOSC);
UARTStdioConfig (0、115200、16000000);
}
void InitESUART (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
SysCtlPeripheralEnable (SYSCTL_Periph_UART1);
GPIOPinConfigure (GPIO_PB0_U1RX);
GPIOPINTP1_UT1 (GPIOPINTPUT_UT1
);GPIOPINTPINTPUT_UT1 (GPIOPPET1_UART_UART1_UART1_UART1_UART1_UART1T1_ GPIO_PIN_0 | GPIO_PIN_1);
UARTClockSourceSet (UART1_base、UART_Cock_PIOSC);
UARTConfigSetExpClk (UART1_base、16000000、 115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE);
UARTEnable (UART1_BASE);
}
void SendATCommand (char *cmd)
{
while (UARTBusy (UART1_base));
while (* Charcmd!='\0')
{UART1+


、UART1+(UART+)、UART1+
(UART+) '\n');//LF
}
int recvString (char *目标、char *数据、int 超时、bool 检查)
{
int i=0;
char a;
unsigned long start = millis ();
while (millis ()- start <超时)
{
while (UARTCharsAvail (UART1_base))
{
a = UARTCharGet (UART1_BASE);
如果(a ='\0')继续;
data[i]= a;
i++;
}
if (检查)
{
if (SearchIndexOf (data、target)!=-1)
{
中断;
}
}

返回0;
}
bool recvFind (char *目标、int timeout、bool check)
{
recvString (target、ReceivedData、timeout、check);
if (SearchIndexOf (ReceivedData、 target)!=-1)
{
返回 true;
}
返回 false;
}
bool recvFindAndFilter (char *target、char *begin、char* end、char *data、int timeout)
{
recvString (target、ReceivedData、timeout、true);
if (SearchIndexOf (ReceivedData、target)!=-1)
{
int index1 = SearchIndexOf (ReceivedData、BEGIN);
int index2 = SearchIndexOf (ReceivedData、End);
if (索引1!=-1 &&索引2!=-1)
{
index1 += strlen (begin);
子字符串(ReceivedData、data、index1、index2);
返回 true;
}
}
数据="";
返回 false;
}
bool ATesp (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("at");
return recvFind ("OK"、5000、 true);
}
bool RSTESP (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+RST");
return recvFind ("OK"、5000、ReceivedData) false);
}
bool CWMODEESP (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CWMODE=1);
return recvFind ("OK"、5000、 true);
}
bool CWJAPESP (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CWJAP=\"连接- Gossu \"、\"Goswami@H1\");//您的 Wifi:NetworkName、 密码
返回 recvFind ("OK"、10000、TRUE);
}
bool CWQAPESP (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CWQAP");
return recvFind ("OK"、10000、 true);
}
bool CIPMUXESP (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CIPMUX=0);
return recvFind ("OK"、5000、 true);
}
bool ATGMResp (char *版本)
{
memset (ReceivedData、0、sizeof (SendedData));
SendATCommand ("AT+GMR");
return recvFindAndFilter ("OK"、ReceivedData) "\r\n"、"\r\n\r\n\r\n"、版本、10000);
}
bool aCWMODEESP (char * list)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CWMODE=?");
return rvFindFilter (OK、 "+CWMODE:("、")\r\n\r\n"、list、10000);
}
bool aCWLAPACK esp (char * list)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CWLAP");
return recvFindAndFilter ("、"OK"、\r\n" "\r\n\r\n"、list、15000);
}
bool aCIFSResp (char * list)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CIFSR");
return recvFindAndFilter ("OK"、"r\r\n"、 "\r\n\r\n、列表、15000);
}
bool CIPSTOESP (void)
{
memset (SendedData、0、sizeof (ReceivedData));ReceivATCommand
("AT+CIPSTO=10000");
return recvFind ("确定"、2000、 true);
}
bool CIPSTADPesp (void)
{
memset (ReceivedData、0、sizeof (ReceivedData));
SendATCommand ("AT+CIPSTRT=4、\"tcp\"、\"Receiv0.100\"、Receive255.255.000\");//服务器 IP 和端口:例如、192.CIPSTACD100、
return

(


'd、'v2000'、return、'd (veData)、'd ('vevoid)、'd (0)、'recrendeedesp (void)、'd (v2000、'd)
true);
}
bool CIPSENDesp (char *文本)
{
int len = strlen (text)+2;
itoa (len、str);
char* at_CMD_send ="AT+CIPSEND";
char CMD_text[128];
strcstr (CMD_text、at_CMD_SEND);
strcat (char
、ReceivedData);char (char) 0、sizeof (ReceivedData);
SendATCommand (CMD_text);
delay (5);
SendATCommand (text);
返回 recvFind ("发送确定"、2000、true);
}
void HardwareReset()
{
GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_0);//输出
GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_4、0x00);//low ->重置为 ESP8266
SysCtlDelay (50);
GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_0);//Output ->// Open DRAIN;RESET -> GND
延迟(10);
GPIOPinTypeGPIOInput (GPIO_PORTD_base、GPIO_PIN_0);//Input ->//返回高阻抗引脚状态
delay (3000);
}
void ProcessCommand (char * CommandText)
{
long Status;
char * array[10];
int i=0;
array[i]= strtok (CommandText、":");
while (array[i]!=NULL)
{
array[++i]= strtok (NULL、":");
}
set (command、memsizpy (命令、命令0);
array[1]、(strlen (array[1]-1));
UARTprintf ("CMD->%s\n"、command);
}
QuitProcess ()
{
Process = false;
}
int main (void)
{
btaskool 状态;
SysCtl_SYSDIV_1 | SysCtl_UST_SCL
| SYSC_UST_OSC_RUST_OSC_RUST_OSC_RUST_OSC_TOOL_RIP_RIPT_OSC_TRL_OSC_TOP_SYSC_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_TOOL_
GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1、0x00);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0x00);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_3、0x00);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
GPIOPinTypeGPIOOutput (GPIO_PORTD_base、GPIO_PIN_0);
GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_0、0x00);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1、0x02);
timerInit();
HardwareReset();
InitUART();
InitESPUART ();
UARTprintf ("执行!\n");
延迟(1000);
TaskStatus = ATesp ();
TaskStatus = RSTesp ();
TaskStatus = CWMODEesp ();
while (TRUE)
{
UARTprintf ("尝试连接 wi-fi\n");
TaskStatus = CWJAPesp ();
if (TaskStatus)
{
UARTprintf ("连接已建立!\n");
break
};taskStatus = CWJAPesp

(任务状态);0xGPIO_pin1、GPIO_pin1、GPIO_pin)
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0x04);
TaskStatus = CIPMUXESP ();
while (TRUE)
{
TaskStatus = ProcessRoutine ();
if (TaskStatus)
{
CIPCLOSEESP ();
GPIOPINWrite (GPIO_PORTF_BASE、GPIO_PIN_3、0x00); //关闭绿色 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0x04);//打开蓝色 LED
}
else
{
delay (10);
CWQAPESP ();
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0x00); //关闭蓝色 LED
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1、0x02);//打开红色 LED
}

}
bool ProcessRoutine ()
{
bool 状态;
进程= true;
UARTprintf ("正在等待服务器...\n");
while (true)
{
status = CIPSTARTESP ()}{bool 状态;进程= true;


}UARTprintf ("pindelay Server..."




);while (pination_sin);while (pination_sin);while (pination_sin (if)(pin_debrash)(pin);(pin)(if)、gpio+ p 0x00);
GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_3、0x08);//turnon 绿色 LED_> READY
int i=0;
char a;
memset (ReceivedData、0、sizeof (ReceivedData)); //clear
unsigned long start;
while (process)
{
if (UARTCharsAvail (UART1_base))
{
if (SearchIndexOf (ReceivedData、"+IPD、")!=-1)
{
i=0;
memset (ReceivedData、0、sizeof (ReceivedData)));
start = Millis ();
while (millis ()- start < 5000)
{
while (UARTCharsAvail (UART1_base))
{
a = UARTCharGet (UART1_BASE);
如果(a ='\0')继续;
ReceivedData[i]= a;
i++;
}
if (SearchIndexOf (ReceivedData、"\n")!=-1)
{
中断;
}
}
ProcessCommand (ReceivedData);
I=0;
memset (ReceivedData、0、sizeof (ReceivedData));
}
否则
{
a = UARTCharGet (UART1_base);
if (a ='\0') continue;
ncedData[I]= a;
i++;
}

}
返回 true;
}
char * Substring (char *、char * dst、

int start、int stop){ncpy = start - start;
strpy (len、src +
dst);return

int SearchIndexOf (char src[]、char str[])
{
int i、j、firstocc;
i = 0、j = 0;
while (src[i]!='\0')
{
while (src[i]!= str[0]& src[i]!='\0')
i++;
if (src[i]='\0')
返回(-1);
firstocc = i;
while (src[i]=str[j]&& src[i]!='\0'&& str[j]!='\0')
{
i++;
J++;
}
if (str[j]='\0')
返回(firstocc);
if (src[i]='\0')
返回(-1);
I = firstocc + 1;
J = 0;
}
返回(-1);
}
char* itoa (int i、char b[])
{
字符常量数字[]="0123456789";
char* p = b;
if (i<0){
*p++='-';
i *=-1;
}
int 移位器= i;
执行{
++p;
换挡器=换挡器/10;
}while (移位器);
*p ='\0';
执行{
*--p =数字[i%10];
I = I/10;
} while (i);
返回 b;
}
void ftoa (float f、char * buf)
{
int pos=0、ix、DP、num;
如果(f<0)
{
buf[pos++]='-';
f =-f;
}
DP=0;
while (f>=10.0)
{
f=f/10.0;
DP++;
}
(ix=1;ix<8;ix++)
{
num = f;
f=f-num;
如果(num>9)
buf[pos++]='#';
其他
buf[pos++]='0'+num;
if (DP=0) buf[pos++]='.';
f=f*10.0;
dp---;
}
}//---------------
main.h ----------------------------
#ifndef MAIN_H_
#define MAIN_H_
extern QuitProcess (void);
#endif /* MAIN_H_*/

//--- DelayTimer.c ----------------------------------
#include 
#include 
#include 
#include "inc/hw_ints.h"
#include "inc/hw_timer.h"
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/timers.h"
#include "intrunsigned tidtidt.h";包含"idtidtidrinh (inh)#intrunsigned intrunsigned static timeridt.h

(inh)#include "idtidtidt.inh)



SysTickEnable();
SysCtlPeripheralEnable (SYSCTL_Periph_TIMER5);
TimerConfigure (TIMER5_base、TIMER_CFG_PERIODICY_UP);
TimerLoadSet (TIMER5_base、TIMER_A、SysCtlClockGet ()/1000);
IntEnable (INT_TIMER5A);
TimerIntEnable (TIMER5_base、TIMER_TINA_TIMEOUT);
TimerEnable (TIMER5_base、TIMER_A);
IntMasterEnable();
}
unsigned long micros (void)
{
return (milleconds * 1000)+(HWREG (TIMER5_base + TIMER_O_TAV)/ 80);
}
unsigned long millis (void)
{
return mills;
}
void delayMicroseconds (unsigned int

elapsedTime){volatile




* long startTime = NVREG = 80+ NVIC (while);while (wst_wst_wst_wst_elaps = 0x80);while (wst_wst_wst_wst_wst_elaps)+ unsigned starttime)+无符号[unsigned start

void delay (uint32_t milliseconds)
{
unsigned long i;
for (i=0;i 

下面我要附上控制台窗口的屏幕截图。

  

我们非常感谢您的任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Himanshu、

    您是从头开始创建项目、还是使用现有 TivaWare 的"闪烁"项目?

    通常、如果 Project Properties 中缺少库或定义、则会显示您报告的问题、因此如果您创建了自己的项目、我可以指出您可能使用的项目。 尽管该项目的标题为"闪烁"、但我认为您确实采用了应具有这些项目的 TivaWare 项目。

    我想验证您是否有正确的设置、您能否截取以下两个 Project 属性窗口的屏幕截图:

    Project Properties -> Build -> ARM Compiler -> Advanced Options -> Predefined Symbols
    Project Properties -> Build -> ARM Linker -> File Search Path

    您可以使用"插入代码、附加文件等..."发布屏幕截图 选项。 有关详细信息、请访问 :e2e.ti.com/.../148.4-5-attaching-a-file