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.

CCS5.3 编译报错:.out文件无法创建,求解答

原程序如下:

#include <msp430.h>

extern unsigned char RXData,TXData,TXByteCtr,ATXData[2];

void I2C_Init(unsigned char SlaveAddress)
       {  P3SEL |= 0x03;                            // Assign I2C pins to USCI_B0
       UCB0CTL1 |= UCSWRST;                      // Enable SW reset
       UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;     // I2C Master, synchronous mode
       UCB0CTL1 = UCSSEL_2 + UCSWRST+UCTR;            // Use SMCLK
       UCB0BR0 = 12;                             // fSCL = SMCLK/12 = ~100kHz
       UCB0BR1 = 0;
       UCB0I2CSA = SlaveAddress;                         // Slave Address is 048h
       UCB0CTL1 &= ~UCSWRST;                     // Clear SW reset, resume operation
       UCB0IE |= UCTXIE+UCRXIE+UCSTPIE; }

void I2C_WriteReg(unsigned char RegAddr, unsigned char Data)    //////////涓婁笅灞侫PI闇?瑕佺敤鍒?
{  TXByteCtr = 2;                          // Load TX byte counter
   ATXData[0]=RegAddr;
   ATXData[1]=Data;

   while (UCB0CTL1 & UCTXSTP);             // Ensure stop condition got sent
   UCB0IE |= UCTXIE;  UCB0CTL1 |= UCTR + UCTXSTT;             // I2C TX, start condition
   __bis_SR_register(LPM0_bits + GIE);     // Enter LPM0 w/ interrupts
   __no_operation();
}
unsigned char I2C_ReadByte()             //////////涓婁笅灞侫PI闇?瑕佺敤鍒?
{
 while (UCB0CTL1 & UCTXSTP);             // Ensure stop condition got sent
 UCB0CTL1 &= ~UCTR;
 UCB0IE &=~ UCTXIE;
 UCB0CTL1 |= UCTXSTT;                    // I2C start condition
 while(UCB0CTL1 & UCTXSTT);              // Start condition sent?
 UCB0CTL1 |= UCTXSTP;
 return RXData;
}
#pragma vector = USCI_B0_VECTOR
__interrupt void USCI_B0_ISR(void)
{
 switch(__even_in_range(UCB0IV,12))
 {  case  0: break;                           // Vector  0: No interrupts
 case  2: break;                           // Vector  2: ALIFG
 case  4: break;                           // Vector  4: NACKIFG
 case  6: break;                           // Vector  6: STTIFG
 case  8:
  UCB0IFG &= ~UCSTPIFG;                   // Clear stop condition int flag
  __bic_SR_register_on_exit(LPM0_bits);   // Exit LPM0 if data was transmitted
  break;                           // Vector  8: STPIFG
 case 10:
  RXData=UCB0RXBUF;   // UCB0CTL1 |= UCTXNACK+UCTXSTP;
  UCB0IFG &= ~UCRXIFG;
  __bic_SR_register_on_exit(LPM0_bits);
  break;                           // Vector 10: RXIFG
 case 12:                                  // Vector 12: TXIFG
  if (TXByteCtr)                          // Check TX byte counter
   {
    UCB0TXBUF = ATXData[2-TXByteCtr];                   // Load TX buffer
    TXByteCtr--;                          // Decrement TX byte counter
    }
  else
  {      UCB0CTL1 |= UCTXSTP;                  // I2C stop condition
  UCB0IFG &= ~UCTXIFG;                  // Clear USCI_B0 TX int flag
  __bic_SR_register_on_exit(LPM0_bits); // Exit LPM0
  }
  break;
  default: break;  }}


int main(void) {
    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
   
 return 0;
}

 

这里是报错:

#10010errors encountered during linking;"I2C.out" not built

#10234-D unresolved symbols remain

请指点,谢谢

  • Hi Yankun,

    CCS 报这个错误是因为你的程序里面有没定义或是没有申明的函数或变量。你可以在CCS的 console窗口里面找到相关的unresolved symbols。

    你把console里的报错信息,滑条往上面拉一点,可以找到相关的信息。然后把它贴出来,或是自己看一下,应该比较容易找到问题所在。

    xiexei

    ken

  • 非常感谢,是变量的定义有问题,目前已经解决了,再次感谢您的帮助!