2014-10-30 57 views
0

我目前正在接管之前使用MSPGCC編譯的MSP430的項目,並且我被要求更新它,以便它可以與使用CCSv6的TI C編譯器一起使用。但是,我收到了一些我不太瞭解的錯誤。下面是我的代碼示例,其中存在一些誤區:錯誤:預計使用CCS for MSP430的C中的標識符

struct UART_UCxxCTL_BITS 
{ 
    UINT8_T UCSWRST : 1; /**< R/W Software reset enable     */ 
    UINT8_T UCTXBRK : 1; /**< R/W Transmit break       */ 
    UINT8_T UCTXADDR: 1; /**< R/W Transmit address      */ 
    UINT8_T UCDORM : 1; /**< R/W Dormant        */ 
    UINT8_T UCBRKIE : 1; /**< R/W Receive break character interrupt  */ 
    UINT8_T UCRXEIE : 1; /**< R/W Receive eroneous-character interrupt */ 
    UINT8_T UCSSEL : 2; /**< R/W USCI clock source select    */ 
    UINT8_T UCSYNC : 1; /**< R/W Synchronous mode select */ 
    UINT8_T UCMODE : 2; /**< R/W Mode select    */ 
    UINT8_T UCSPB : 1; /**< R/W Stop bit select   */ 
    UINT8_T UC7BIT : 1; /**< R/W Character length   */ 
    UINT8_T UCMSB : 1; /**< R/W MSB first select   */ 
    UINT8_T UCPAR : 1; /**< R/W Parity select    */ 
    UINT8_T UCPEN : 1; /**< R/W Parity enable    */ 
}; 

對於結構內的所有這些線,除了UCMODEUCSSEL,我得到了錯誤:「#41預期標識符」 在總,我的項目中有38個錯誤#41,所有這些錯誤都在結構上,但不是每個結構,也不是每個結構中的每個聲明。它們出現在兩個頭文件中,一個用於UART,另一個用於SPI。這兩個文件雖然沒有鏈接。在這兩個文件中都聲明瞭結構,其中一些非常相似。

例如,在這兩個文件中,UCMODEUCSSEL都不被視爲錯誤,但其餘的是。這是我覺得奇怪的。請注意,UINT8_Tunsigned char

你知道什麼可能會帶來這些錯誤嗎?

非常感謝。

+0

難道他們被定義爲其他地方的宏? – 2014-10-30 15:05:11

+0

嘗試將其縮小到顯示錯誤的最小的自包含源文件。你應該可以用一個位字段來完成,而不是你的例子中的14。你還需要在簡化的源文件中定義'UINT8_T'(它是在哪裏定義的,爲什麼它是全大寫的?)然後將精確的錯誤消息複製並粘貼到問題中。爲什麼這會標記C和C++? – 2014-10-30 15:07:14

+0

錯誤出現在兩個頭文件中,一個用於UART,另一個用於SPI。 'UINT8_T'被定義爲大部分項目中使用的其他頭文件中的unisgned char。確切的錯誤信息已經在我的問題中,並且是我唯一的錯誤。 – Biotox 2014-10-30 15:23:48

回答

0

有故障的關鍵字CCS環境已經定義,在處理器頭文件,即msp430f6725.h

#define UCRXEIE    (0x0020)  /* RX Error interrupt enable */