#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/fpu.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/systick.h"
#include "driverlib/rom.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
#include "driverlib/adc.h"
void ConfigureUART(void)
{
//
// Enable the GPIO Peripheral used by the UART.
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
//
// Enable UART0
//
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
//
// Configure GPIO Pins for UART mode.
//
ROM_GPIOPinConfigure(GPIO_PA0_U0RX);
ROM_GPIOPinConfigure(GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
//
// Use the internal 16MHz oscillator as the UART clock source.
//
UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC);
//
// Initialize the UART for console I/O.
//
UARTStdioConfig(0, 115200, 16000000);
}
int main(void)
{
uint32_t ui32ADC0Value[4];
volatile uint32_t ui32TempAvg;
volatile uint32_t ui32TempValueC;
volatile uint32_t ui32TempValueF;
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, 1, 0, ADC_CTL_TS);
ADCSequenceStepConfigure(ADC0_BASE, 1, 1, ADC_CTL_TS);
ADCSequenceStepConfigure(ADC0_BASE, 1, 2, ADC_CTL_TS);
ADCSequenceStepConfigure(ADC0_BASE,1,3,ADC_CTL_TS|ADC_CTL_IE|ADC_CTL_END);
ADCSequenceEnable(ADC0_BASE, 1);
ConfigureUART();
while(1)
{
ADCIntClear(ADC0_BASE, 1);
ADCProcessorTrigger(ADC0_BASE, 1);
while(!ADCIntStatus(ADC0_BASE, 1, false))
{
}
ADCSequenceDataGet(ADC0_BASE, 1, ui32ADC0Value);
ui32TempAvg = (ui32ADC0Value[0] + ui32ADC0Value[1] + ui32ADC0Value[2] + ui32ADC0Value[3] + 2)/4;
ui32TempValueC = (1475 – ((2475 * ui32TempAvg)) / 4096)/10;
UARTprintf("\n芯片温度%d",ui32TempValueC);
ui32TempValueF = ((ui32TempValueC * 9) + 160) / 5;
}
}
#10010 errors encountered during linking; "ADC_TS.out" not built
#10234-D unresolved symbols remain
unresolved symbol ROM_GPIOPinConfigure, first referenced in ./main.obj
unresolved symbol ROM_GPIOPinTypeUART, first referenced in ./main.obj
unresolved symbol ROM_SysCtlPeripheralEnable, first referenced in ./main.obj
unresolved symbol UARTprintf, first referenced in ./main.obj
unresolved symbol UARTStdioConfig, first referenced in ./main.obj
#225-D function "ROM_GPIOPinConfigure" declared implicitly
#225-D function "ROM_GPIOPinTypeUART" declared implicitly
#225-D function "ROM_SysCtlPeripheralEnable" declared implicitly
出现以上错误 和警告 该如何解决
Wellin Zhang:
Zijie
请加入相应的库文件driverlib.bin。
如果使用的是CCS,那么该文件在
..\Tivaware\driverlib\ccs\Debug路径下。
对于其他的开发环境,保存在相应的目录下。
针对
unresolved symbol UARTprintf, first referenced in ./main.obj
unresolved symbol UARTStdioConfig, first referenced in ./main.obj
请把uartstdio.c添加到工程中,
该文件位置是..\Tivaware\utils目录下。
zijie Tang:
回复 Wellin Zhang:
你好 ,感谢你的回答。
我使用的是CCS 在..\Tivaware\driverlib\ccs\Debug路径下 没有driverlib.bin,只有driverlib.lib并且已经添加到工程里了
问题已经没有解决
xyz549040622:
回复 zijie Tang:
对于ROM函数的使用,加进去这个宏定义是可以的。至于unresolved symbol UARTprintf, first referenced in ./main.obj的错误,需要添加uartstdio.c文件才可以的。
TI中文支持网
