1. 程式人生 > >Keil程式設計中Source Brower : "P17" is undefined!的問題

Keil程式設計中Source Brower : "P17" is undefined!的問題

部落格原文:Keil程式設計中Source Brower : "P17" is undefined!的問題

在Keil新建工程中經常會遇到一個問題,去看某一個變數定義,然後跳轉不過去,並提示Source Brower : "某某" is undefined!,在這裡我就提供一種我遇到的問題以及解決方案。

如下是標頭檔案的定義

#ifndef _LED_H_
#define _LED_H_

#define LED1  P17

#endif

如下是原始檔的定義,使用的晶片是N76E003嘍。

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"
#include "LED.h"

void LED_Init_IO(void)
{
  P17_PushPull_Mode;
  //	LED1 = 1;
}

 當我在標頭檔案想要檢視P17的定義時,結果提示如下圖,P17引腳沒有定義 ?是真的沒有定義嗎?答案是否定的。

注意看原始檔的內容,LED1 = 1;這句話我給註釋掉了,當我把這個註釋給去掉,編譯連結一下,在去標頭檔案檢視P17定義,直接跳轉有末有。這種問題往往出現在新建的工程中,在原始檔還沒來得及使用在標頭檔案定義的內容。我也是偶然發現的。可能是編譯器的優化問題吧。

往往還有一種情況,新建的原始檔和標頭檔案忘了新增到工程中。