博客原文: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定義,直接跳轉有末有。這種問題往往出現在新建的工程中,在源文件還沒來得及使用在頭文件定義的內容。我也是偶然發現的。可能是編譯器的優化問題吧。
往往還有一種情況,新建的源文件和頭文件忘了添加到工程中。