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库里面有变量的定义,我在添加了头文件后编译显示没有定义变量呢

Other Parts Discussed in Thread: TM4C1233E6PM

这是我的程序:

#include"stdio.h"
#include<stdint.h>
#include<stdbool.h>

#include "inc/tm4c1233e6pm.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pwm.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/pin_map.h"
#include "driverlib/uart.h"
#include "driverlib/interrupt.h"
#include "inc/hw_gpio.h"
#include "inc/hw_ints.h"

//********************UART_GPIO初始化************************
void UART0_init(void)
 {
 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);                     //复用功能时钟
 GPIOPinTypeUART(GPIO_PORTA_BASE,GPIO_PIN_0|GPIO_PIN_1);         //配置PAO、PA1为UART1 的 RXD0,TXD0,他怎么知道哪个是rx哪个是tx呢??

 GPIOPinConfigure(GPIO_PA0_U0RX);
 GPIOPinConfigure(GPIO_PA1_U0TX);
   //配置PA0 PA1为串口引脚

 UARTConfigSetExpClk(UART0_BASE,SysCtlClockGet(), 9600,
                       (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
                         UART_CONFIG_PAR_NONE));

 IntMasterEnable();                                              //全局中断使能
 IntEnable(INT_UART0);                                           //使能串口0中断

 UARTIntEnable(UART0_BASE, UART_INT_RX | UART_INT_RT);          //使能串口0接收中断和接收超时中断

 UARTEnable(UART0_BASE);                                        //使能串口1(UARTO)发送和接收
    }


//*****************UART中断处理*****************************

void UART0_Handler(void)
{
    uint32_t ITStatus;
    ITStatus = UARTIntStatus(UART0_BASE, true);    //中断标志位
    UARTIntClear(UART0_BASE, ITStatus);            //清除中断标志

    while(UARTCharsAvail(UART0_BASE))             //确认接收 FIFO 中是否有数据
    {

        UARTCharPutNonBlocking(UART0_BASE,UARTCharGetNonBlocking(UART0_BASE));

    }
}
//*****************主函数调用*****************************
void main ()
 {
 UART0_init();
    while(1);

 }

 

其中这两个变量没有定义:GPIOPinConfigure(GPIO_PA0_U0RX);
                                                GPIOPinConfigure(GPIO_PA1_U0TX);

错误提示:#20 identifier "GPIO_PA0_U0RX" is undefined

                  #20 identifier "GPIO_PA0_U0TX" is undefined

 

 

 

 

 

 

  • 在pin_map.h中,你需要宏定义tm4c1233e6pm,因为估计你默认的原来的芯片不是这个型号,你打开pin_map.h看看定义的事什么芯片呢

  • 检查一下CCS工程属性的Build~ARM Compiler~Advanced Options~Predefined Symbols里面,

    有没有PART_TM4Cxxx这个定义。TM4Cxxx对应你的处理器型号。

  • 是的,CCS中报错说明这两个变量没有定义,如果在包含了的头文件中有变量定义的语句,则可能是在条件编译下没有执行这两句,而执行了其他部分,请检查一下

  • 谢谢 ,的确你说的这样 ,我看了一下 ,我没有试验 ,我是直接把那个定义搬到我程序里去了,

  • 可是,这哥问题是解决了 我的这个程序为什么能运行 就是 能发出去就是收不回来 我的这个程序有问题吗,麻烦您帮我看下

  • 为什么 我的这个程序 能运行 下载了之后能发送数据  收不回来数据呢  我debug的时候 没发现任何问题啊  能否麻烦您帮我看一下

  • 楼主用的板子是自己做的还是TI官方的的开发板?

    硬件连接是否可靠?

  • 板子是我们自己做的,但是我都试了好几块了 ,不至于一块都不行吧,麻烦您跟我说下这个程序 有没有没问题?

    我是吧程序放到板子里,找了根DB9串口线连接 电脑和板子的 ,

    原理图连接:板子上 芯片 管脚PA0和PA1 分别对应的RX 和TX,出来后接了个MAX3221cpw的Rout和Din,然后 我找了三根线 接在了MAX3221CPW的DOUT和Rin上,还有个GND 然后接到电脑上的;如图下: 

    ,tx和rx我反复尝试过好几种接法,以防止接错线,结果每一种情况 都没用 ,都不能成功收数据

    最后  我是用串口调试助手忘串口发数据,能发收不回来,,,还是就是 我吧图中的右边椭圆红色圈里面的2和3号口短接,打开调试助手就能发送和接受数据,至少说明 我电脑的串口和串口线是好的吧 现在的问题应该就在板子上了,一方面是不是程序的问题这个是我很关心的,硬件的可能性。我用的 是TM4C1233E6PM,用ccs编译的通过JATG下载程序。请教高手,我把 那个例程刷进去也没什么反应,而且我看网上有不少同志也反映说,不管怎么弄就是串口没反应,不知道为什么,请高手指教,

     

  • 您好!请你帮我看看这是什么错误,代码是TivaWare_C_Series-1.0/examples/peripherals/i2c/soft_i2c_atmel我新建了工程也添加了路径(CCS6.0.0.00190_win32)可是编译总是报错identifier "INT_TIMER0A_" is undefined和#225-D function "INT_RESOLVE" declared 

  • 用CCS6.0编译总是出类似的错误,最近写一个I2C的代码一直弄不好,请大神们知道一下吧这个是库里面的例子加载编译出来都是错


    #include <stdbool.h>
    #include <stdint.h>
    #include <string.h>
    #include "inc/hw_ints.h"
    #include "inc/hw_memmap.h"
    #include "driverlib/gpio.h"
    #include "driverlib/interrupt.h"
    #include "driverlib/pin_map.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/timer.h"
    #include "driverlib/uart.h"
    #include "utils/softi2c.h"
    #include "utils/uartstdio.h"

    #define SLAVE_ADDR 0x54

    #define STATE_IDLE 0
    #define STATE_WRITE_NEXT 1
    #define STATE_WRITE_FINAL 2
    #define STATE_WAIT_ACK 3
    #define STATE_SEND_ACK 4
    #define STATE_READ_ONE 5
    #define STATE_READ_FIRST 6
    #define STATE_READ_NEXT 7
    #define STATE_READ_FINAL 8
    #define STATE_READ_WAIT 9

    static tSoftI2C g_sI2C;

    static uint8_t *g_pui8Data = 0;
    static uint32_t g_ui32Count = 0;

    static volatile uint32_t g_ui32State = STATE_IDLE;

    void
    InitConsole(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
    UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC);
    GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
    UARTStdioConfig(0, 115200, 16000000);
    }

    void
    SoftI2CCallback(void)
    {
    SoftI2CIntClear(&g_sI2C);
    switch(g_ui32State)
    {
    case STATE_IDLE:
    {
    break;
    }
    case STATE_WRITE_NEXT:
    {
    SoftI2CDataPut(&g_sI2C, *g_pui8Data++);
    g_ui32Count--;
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_SEND_CONT);
    if(g_ui32Count == 1)
    {
    g_ui32State = STATE_WRITE_FINAL;
    }
    break;
    }
    case STATE_WRITE_FINAL:
    {
    SoftI2CDataPut(&g_sI2C, *g_pui8Data++);
    g_ui32Count--;
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_SEND_FINISH);
    g_ui32State = STATE_SEND_ACK;

    break;
    }
    case STATE_WAIT_ACK:
    {
    if(SoftI2CErr(&g_sI2C) == SOFTI2C_ERR_NONE)
    {
    SoftI2CDataGet(&g_sI2C);
    g_ui32State = STATE_IDLE;
    break;
    }
    }
    case STATE_SEND_ACK:
    {
    SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR, true);
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_SINGLE_RECEIVE);
    g_ui32State = STATE_WAIT_ACK;
    break;
    }
    case STATE_READ_ONE:
    {
    SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR, true);
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_SINGLE_RECEIVE);
    g_ui32State = STATE_READ_WAIT;
    break;
    }
    case STATE_READ_FIRST:
    {
    SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR, true);
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_RECEIVE_START);
    g_ui32State = STATE_READ_NEXT;
    break;
    }
    case STATE_READ_NEXT:
    {
    *g_pui8Data++ = SoftI2CDataGet(&g_sI2C);
    g_ui32Count--;
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_RECEIVE_CONT);
    if(g_ui32Count == 2)
    {
    g_ui32State = STATE_READ_FINAL;
    }
    break;
    }
    case STATE_READ_FINAL:
    {
    *g_pui8Data++ = SoftI2CDataGet(&g_sI2C);
    g_ui32Count--;
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_RECEIVE_FINISH);
    g_ui32State = STATE_READ_WAIT;
    break;
    }
    case STATE_READ_WAIT:
    {
    *g_pui8Data++ = SoftI2CDataGet(&g_sI2C);
    g_ui32Count--;
    g_ui32State = STATE_IDLE;
    break;
    }
    }
    }

    void
    AtmelWrite(uint8_t *pui8Data, uint32_t ui32Offset, uint32_t ui32Count)
    {
    g_pui8Data = pui8Data;
    g_ui32Count = ui32Count;
    if(ui32Count != 1)
    {
    g_ui32State = STATE_WRITE_NEXT;
    }
    else
    {
    g_ui32State = STATE_WRITE_FINAL;
    }
    SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR | (ui32Offset >> 8), false);
    SoftI2CDataPut(&g_sI2C, ui32Offset);
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_BURST_SEND_START);
    while(g_ui32State != STATE_IDLE)
    {
    }
    }
    void
    AtmelRead(uint8_t *pui8Data, uint32_t ui32Offset, uint32_t ui32Count)
    {
    g_pui8Data = pui8Data;
    g_ui32Count = ui32Count;
    if(ui32Count == 1)
    {
    g_ui32State = STATE_READ_ONE;
    }
    else
    {
    g_ui32State = STATE_READ_FIRST;
    }
    SoftI2CSlaveAddrSet(&g_sI2C, SLAVE_ADDR | (ui32Offset >> 8), false);
    SoftI2CDataPut(&g_sI2C, ui32Offset);
    SoftI2CControl(&g_sI2C, SOFTI2C_CMD_SINGLE_SEND);
    while(g_ui32State != STATE_IDLE)
    {
    }
    }
    void
    Timer0AIntHandler(void)
    {
    TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
    SoftI2CTimerTick(&g_sI2C);
    }
    int
    main(void)
    {
    uint8_t pui8Data[16];
    uint32_t ui32Idx;
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |
    SYSCTL_XTAL_16MHZ);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
    GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_2 | GPIO_PIN_3);
    memset(&g_sI2C, 0, sizeof(g_sI2C));
    SoftI2CCallbackSet(&g_sI2C, SoftI2CCallback);
    SoftI2CSCLGPIOSet(&g_sI2C, GPIO_PORTB_BASE, GPIO_PIN_2);
    SoftI2CSDAGPIOSet(&g_sI2C, GPIO_PORTB_BASE, GPIO_PIN_3);
    SoftI2CInit(&g_sI2C);
    SoftI2CIntEnable(&g_sI2C);
    TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
    TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / 40000);
    TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
    TimerEnable(TIMER0_BASE, TIMER_A);
    IntEnable(INT_TIMER0A);
    InitConsole();
    UARTprintf("SoftI2C Atmel AT24C08A example\n");
    UARTprintf("Write:");
    for(ui32Idx = 0; ui32Idx < 16; ui32Idx++)
    {
    pui8Data[ui32Idx] = ui32Idx;
    UARTprintf(" %02x", pui8Data[ui32Idx]);
    }
    UARTprintf("\n");
    AtmelWrite(pui8Data, 0, 16);
    AtmelRead(pui8Data, 0, 16);
    UARTprintf("Read :");
    for(ui32Idx = 0; ui32Idx < 16; ui32Idx++)
    {
    UARTprintf(" %02x", pui8Data[ui32Idx]);
    }
    UARTprintf("\n");
    UARTprintf("Done.\n\n");
    return(0);
    }

    下面的也是


    #include"include.h"
    #include "pin_map.h"
    //**************************** 设备端口号 *********************************//
    // 核心板 使用PLL,频率 80MHZ
    //PWM四路50HZ输出:PB4,PB5,PB6,PB7; 定时1器捕捉(超声波):PF2(R),PF3(T) //
    //串口通信:PB0-->RX,PB1-->TX; IIC通信:PB2-->SCL,PB3-->SDA //
    //液晶OLED:PC4(D0),PC5(D1),PC6(RS),PC7(DC) 按键:PF0|PF4(核心板),PE4,PE5 //
    //*************************************************************************//


    //**************************** Times0Int **********************************//
    // 1ms //
    // //
    //*************************************************************************//

    void Times0Int_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); //使能定时器
    TimerIntRegister(TIMER0_BASE,TIMER_A,Timer0_IntHandler);
    TimerConfigure(TIMER0_BASE,TIMER_CFG_SPLIT_PAIR |TIMER_CFG_A_PERIODIC);
    //TimerConfigure(TIMER0_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_B_PERIODIC);
    TimerLoadSet(TIMER0_BASE,TIMER_A,400000); ///5MS中断
    TimerIntEnable(TIMER0_BASE,TIMER_TIMA_TIMEOUT);
    TimerEnable(TIMER0_BASE, TIMER_A);
    }
    //************************** GpioTimes1Int ********************************//
    // //捕获计数 //
    // //
    //*************************************************************************//

    void GpioTimes1Int_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER1);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);

    GPIOPinConfigure(GPIO_PF2_T1CCP0);
    GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_2,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD);
    GPIOPinTypeTimer(GPIO_PORTF_BASE,GPIO_PIN_2);

    TimerClockSourceSet(TIMER1_BASE,TIMER_CLOCK_SYSTEM);
    TimerConfigure(TIMER1_BASE, TIMER_CFG_SPLIT_PAIR|TIMER_CFG_A_CAP_TIME_UP);
    TimerControlEvent(TIMER1_BASE, TIMER_A, TIMER_EVENT_BOTH_EDGES);
    TimerIntEnable(TIMER1_BASE,TIMER_CAPA_EVENT);
    TimerIntRegister(TIMER1_BASE,TIMER_A,Timer1_IntHandler);
    IntPrioritySet(INT_TIMER1A, 0);
    IntEnable(INT_TIMER1A);
    TimerEnable(TIMER1_BASE,TIMER_A );
    }


    //***************************** GpioInt ***********************************//
    // //
    // //
    //*************************************************************************//

    void GpioInt_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1);
    GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_BOTH_EDGES);
    GPIOIntRegister(GPIO_PORTF_BASE,GPIO_IntHandler);
    GPIOIntEnable(GPIO_PORTF_BASE,GPIO_INT_PIN_1);
    IntPrioritySet(INT_GPIOF, 0);
    IntEnable(GPIO_INT_PIN_1);
    }
    //******************************* PWM *************************************//
    //PORT : PB4 ,PB5 ,PB6 ,PB7 //
    // //
    //*************************************************************************//
    void PWM_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_4);
    GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_5);
    GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_6);
    GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_7);
    GPIOPinConfigure(GPIO_PB6_M0PWM0);
    GPIOPinConfigure(GPIO_PB7_M0PWM1);
    GPIOPinConfigure(GPIO_PB4_M0PWM2);
    GPIOPinConfigure(GPIO_PB5_M0PWM3);
    SysCtlPWMClockSet(SYSCTL_PWMDIV_64);
    PWMGenConfigure(PWM0_BASE,PWM_GEN_0,PWM_GEN_MODE_UP_DOWN| PWM_GEN_MODE_NO_SYNC);
    PWMGenConfigure(PWM0_BASE,PWM_GEN_1,PWM_GEN_MODE_UP_DOWN| PWM_GEN_MODE_NO_SYNC);
    PWMGenPeriodSet( PWM0_BASE, PWM_GEN_0, 25000);//125 0000 / 250 00
    PWMGenPeriodSet( PWM0_BASE, PWM_GEN_1, 25000);//125 0000 / 250 00
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, 0);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, 0);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, 0);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3, 0);
    PWMOutputState(PWM0_BASE, (PWM_OUT_0_BIT |PWM_OUT_1_BIT|PWM_OUT_2_BIT|PWM_OUT_3_BIT), true);
    PWMGenEnable(PWM0_BASE, PWM_GEN_0);
    PWMGenEnable(PWM0_BASE, PWM_GEN_1);
    }

    void PWM_Set(int16 PWM_CH0,int16 PWM_CH1,int16 PWM_CH2,int16 PWM_CH3)
    {
    if(PWM_CH0 > 25000)PWM_CH0 = 25000;else if(PWM_CH0<0)PWM_CH0 = 0;
    if(PWM_CH1 > 25000)PWM_CH1 = 25000;else if(PWM_CH1<0)PWM_CH1 = 0;
    if(PWM_CH2 > 25000)PWM_CH2 = 25000;else if(PWM_CH2<0)PWM_CH2 = 0;
    if(PWM_CH3 > 25000)PWM_CH3 = 25000;else if(PWM_CH3<0)PWM_CH3 = 0;

    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, PWM_CH0);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, PWM_CH1);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, PWM_CH2);
    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3, PWM_CH3);

    }


    //******************************* ADC *************************************//
    // //
    // //
    //*************************************************************************//

    void ADC_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
    GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0);
    ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
    // ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_CH0 );
    // ADCSequenceStepConfigure(ADC0_BASE, 0, 1, ADC_CTL_CH1 );
    // ADCSequenceStepConfigure(ADC0_BASE, 0, 2, ADC_CTL_CH2 );
    ADCSequenceStepConfigure(ADC0_BASE, 0, 3, ADC_CTL_CH3 | ADC_CTL_IE | ADC_CTL_END);
    ADCSequenceEnable(ADC0_BASE, 0);
    ADCIntClear(ADC0_BASE, 0);
    }

    void Get_Ad(void)
    {
    uint32_t pui32ADC0Value[4];
    ADCProcessorTrigger(ADC0_BASE, 0);
    while(!ADCIntStatus(ADC0_BASE, 0, false));
    ADCIntClear(ADC0_BASE, 0);
    ADCSequenceDataGet(ADC0_BASE, 0, pui32ADC0Value);
    Count(1,pui32ADC0Value[0],"V");

    }

    //****************************** UART *************************************//
    //Port:PB0-->RX //
    // PB1-->TX //
    //*************************************************************************//

    void Uart_Init(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    GPIOPinConfigure(GPIO_PB0_U1RX);
    GPIOPinConfigure(GPIO_PB1_U1TX);
    GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1);
    UARTConfigSetExpClk(UART1_BASE,80000000,115200,(UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE |UART_CONFIG_PAR_NONE));
    //UARTFIFOLevelSet(UART1_BASE,UART_FIFO_TX1_8,UART_FIFO_RX1_8);
    IntEnable(INT_UART1);
    UARTIntRegister(UART1_BASE, UART1_Handler); ///接收中断
    UARTIntEnable(UART1_BASE,UART_INT_RX);
    UARTEnable(UART1_BASE);
    UARTFIFODisable(UART1_BASE);
    }
    void UART_Str(char ch[])
    {
    unsigned char ptr=0;
    while(ch[ptr])
    {
    UARTCharPut(UART1_BASE,(unsigned char)ch[ptr++]);
    }
    UARTCharPut(UART1_BASE, '\n');
    }

    void UART_Write_Int(int UART_Write_data)//整型变量使用这个函数
    {
    char uart_str_temp[10];

    sprintf(uart_str_temp,"%d ",UART_Write_data);
    UART_Str(uart_str_temp);
    }
    void UART_Write_Float(float UART_Write_data)//浮点型变量使用这个函数
    {
    char uart_str_temp[10];

    int UART_Write_i=(int)UART_Write_data;
    int UART_Write_j=(int)(fabs((UART_Write_data-UART_Write_i)*1000));
    int UART_Write_k3=(int)(UART_Write_j/100);
    int UART_Write_k2=(int)(UART_Write_j%100/10);
    //int k1=(int)(j%100%10);
    sprintf(uart_str_temp,"%d.%d%d ",UART_Write_i,UART_Write_k3,UART_Write_k2);//,k1);
    UART_Str(uart_str_temp);
    }

    //=======虚拟示波器beat1.7=========//
    void sci_dis(signed int ch0, signed int ch1, signed int ch2)
    {
    UARTCharPut(UART1_BASE,(ch0+4000)/90+' ');
    UARTCharPut(UART1_BASE,(ch0+4000)%90+' ');
    UARTCharPut(UART1_BASE,(ch1+4000)/90+' ');
    UARTCharPut(UART1_BASE,(ch1+4000)%90+' ');
    UARTCharPut(UART1_BASE,(ch2+4000)/90+' ');
    UARTCharPut(UART1_BASE,(ch2+4000)%90+' ');
    }
    //******************************* IIC *************************************//
    //PORT : PB2-->SCL //
    // PB3-->SDA //
    //*************************************************************************//

    void I2C_init(void)
    {
    SysCtlPeripheralEnable( SYSCTL_PERIPH_I2C0);
    SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOB);
    GPIOPinConfigure(GPIO_PB2_I2C0SCL);
    GPIOPinConfigure(GPIO_PB3_I2C0SDA);
    GPIOPinTypeI2CSCL(GPIO_PORTB_BASE,GPIO_PIN_2);
    GPIOPinTypeI2C(GPIO_PORTB_BASE,GPIO_PIN_3);
    I2CMasterInitExpClk(I2C0_BASE,80000000,true);
    I2CMasterEnable(I2C0_BASE);
    }

    void I2CWrite(uint8 DevAddr,uint8 RegAddr,uint8 WriteData)
    {
    I2CMasterSlaveAddrSet(I2C0_BASE, DevAddr, false);
    I2CMasterDataPut(I2C0_BASE, RegAddr);
    I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_START);
    while(I2CMasterBusy(I2C0_BASE));
    I2CMasterDataPut(I2C0_BASE,WriteData);
    I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_CONT);
    while(I2CMasterBusy(I2C0_BASE));
    I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_STOP);
    while(I2CMasterBusy(I2C0_BASE));
    SysCtlDelay(1000);
    }

    uint8 I2CRead(uint8 DevAddr,uint8 RegAddr)
    {
    static uint8 i2c_getdata = 0;
    I2CMasterSlaveAddrSet(I2C0_BASE, DevAddr, false);
    I2CMasterDataPut(I2C0_BASE, RegAddr);
    I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_BURST_SEND_START);
    while(I2CMasterBusy(I2C0_BASE));
    I2CMasterSlaveAddrSet(I2C0_BASE, DevAddr, true);
    I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_SINGLE_RECEIVE);
    while(I2CMasterBusy(I2C0_BASE));
    i2c_getdata = I2CMasterDataGet(I2C0_BASE);
    return i2c_getdata;

    }

    //******************************* QEI *************************************//
    //正交解码 //
    // //
    //*************************************************************************//
    /*
    void Qei_InIt(void)
    {
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI1);
    GPIOPinTypeQEI(GPIO_PORTC_BASE,GPIO_PIN_5);
    GPIOPinTypeQEI(GPIO_PORTG_BASE,GPIO_PIN_4);
    QEIConfigure(QEI1_BASE,(QEI_CONFIG_CAPTURE_A|QEI_CONFIG_NO_RESET|QEI_CONFIG_CLOCK_DIR|QEI_CONFIG_NO_SWAP),0);
    // 设置速度检测周期为 0.01秒
    QEIVelocityConfigure(QEI1_BASE, QEI_VELDIV_1, 60000);
    QEIEnable(QEI1_BASE);
    QEIVelocityEnable(QEI1_BASE);
    //ROM_QEIVelocityGet(QEI1_BASE);
    }
    */除了标记出来的还有很多,我把错误贴到下面附件

  • 查看我发表的帖子,CCS没有配置好,没加进去你使用芯片的宏定义。

  • 您好!编译问题已经解决了,可是新问题又出来了:CORTEX_M4_0: GEL: Encountered a problem loading file: D:\TI\CCS6.0.0.00190_win32\test1\Debug\test1.out Could not open file这个是怎么回事?