2017-09-01 79 views
-3
// Created by lenovo on 8/27/2017. 
// 

#ifndef UART_UART_CFG_H 
#define UART_UART_CFG_H 

#define UART_BaudRate  1200 //9600UL 
#define CLK    16 
#define UART_Parity  NONE 
#define UART_TX   EN_TX 
#define UART_RX   EN_RX 
#define UART_STARTBITS  1 
#define UART_STOPBITS  1 
#define UART_DATABITS EightBits 

#endif //UART_UART_CFG_H 

enter image description here 此稱爲對象的錯誤不是一個函數或指針 並具有配置文件,第一個文件中的所有單詞的地址,這是我的私人文件,Erorr庫配置文件

// 
// Created by lenovo on 8/27/2017. 
// 

#ifndef UART_UART_PRIV_H 
#define UART_UART_PRIV_H 

/* Main PINS */ 
#define UCSRA *((volatile u8 *)0x2B) 
#define UCSRB *((volatile u8 *)0x2A) 
#define UCSRC *((volatile u8 *)0x40) 
#define UBRRL *((volatile u8 *)0x29) 
#define UBRRH *((volatile u8 *)0x40) 
#define UDR *((volatile u8 *)0x2C) 
/* END Main PINS */ 
#define NONE  0x00 
#define twoBit  0x08 
#define oneBit  0x00 
/* Bits */ 
#define fiveBits 0x00 
#define SixBits  0x02 
#define SevenBits 0x04 
#define EightBits 0x06 
/* End Bits */ 
#define DIS   0 // Disable 
#define EN   1 // Enable 

#define UART_9600 9600UL 
#endif //UART_UART_PRIV_H 

私人文件,有我的微控制器ATmega16一些地址。此外,我的配置文件是私人文件的引用;其中有私鑰定義的密鑰,例如,在UART_Partit中,我寫了私人定義的NONE和NONE地址,但它顯示錯誤

+0

我敢打賭,Atmel Studio中的「輸出」選項卡帶有相同的錯誤信息和更多有用的診斷信息,以複製和可複製的文本形式發佈,錯誤文本。 – Clifford

+0

在帖子中完成了圖片 –

+0

你能幫我解決這個問題嗎? –

回答

0

您需要在聲明中包含您的文件。

#ifndef UART_UART_CFG_H 
#define UART_UART_CFG_H 

#include "uart_priv.h" 

#define UART_BaudRate  1200 //9600UL 
#define CLK    16 
#define UART_Parity  NONE 
#define UART_TX   EN_TX 
#define UART_RX   EN_RX 
#define UART_STARTBITS  1 
#define UART_STOPBITS  1 
#define UART_DATABITS EightBits 

#endif //UART_UART_CFG_H 

並且在第二個文件中沒有爲這些常量定義EN_TX或EN_RX。

+0

EN_TX和EN_RX是主程序中的宏,用於檢查其EN_TX或EN_RX是否在形式如下#if和#endif –

+1

@MohannedKandil:很顯然,EN_TX,EN_RX的定義在它們(或它們的別名UART_TX,UART_RX)被使用。您需要發佈原始構建日誌(從「輸出」選項卡),而不是IDE過濾的消息 - 這會隱藏有用的診斷信息。 – Clifford