标题:undefined identifier
只看楼主
jany_jin
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-6
结帖率:100%
已结贴  问题点数:20 回复次数:7 
undefined identifier
#ifndef __DELAY_H__
#define __DELAY_H__

#include <reg52.h>
#include "LCD Driver.h"


/************************************************
函数: delay_ms(unsigned int MS)
功能: 延时
*************************************************/
void delay_ms(unsigned int MS)
{
  unsigned char i,j;
  for(i = 0; i < MS; i++)
     for(j = 0; j < 123; j++);

}
/************************************************
函数: delay_key(unsigned int second,unsigned int MS100)
功能: 延时和画面切换按键
*************************************************/
void delay_key(unsigned int second,unsigned int MS100)
{
   unsigned int i;
   
   for(i = 0; i < second*100 + MS100; i++)
   {
           if(key == 0)
        {
            delay_ms(20);
            while(key == 0)  {delay_ms(20);}
            break;
        }
        else delay_ms(20);
   }
}

#endif



#ifndef __DRIVER_H__
#define __DRIVER_H__

#include <reg52.h>
#include "Delay.h"



sbit  CS   = P2^7;
sbit  REST = P3^1;
sbit  RS   = P2^0;
sbit  WRD  = P3^6;
sbit  RDD  = P3^7;
sbit  key  = P3^4;
#define  LCM_DB  P0

void Display_image();
void CMDWrite(unsigned char CMD);
void DataWrite(unsigned char DAT);
unsigned char DataRead(unsigned char Addr);
void Initinal();

.........
..........
#endif

错误:DELAY.H(30): error C202: 'key': undefined identifier

请问问大家,这个"key" 我在前面定义了为什么编译的时候这里会说没有定义呢?
搜索更多相关主题的帖子: undefined include second 
2013-08-17 13:40
jany_jin
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-6
得分:0 
有没有人帮我看看,上面两个子函数相互调用的时候,编译时出现"key" 没有定义是为什么啊?
2013-08-17 14:08
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:20 
#include "LCD Driver.h"
文件名里面可以有空格吗?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-08-17 14:52
jany_jin
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-6
得分:0 
回复 3楼 pauljames
我去掉了LCD ,还是一样
2013-08-17 15:32
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
你直接在文件前面敲一行sbit  key  = P3^4;试试看,如果可以那么说明你头文件实际上没有包含进来

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-08-17 15:42
jany_jin
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-6
得分:0 
回复 5楼 pauljames
直接在 delay.h 文件下敲 sbit key = P3^4  就不会有个问题。如果没有包含进来,该怎么处理。
2013-08-17 16:00
jany_jin
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2013-8-6
得分:0 
知道为什么出仰错了,.h文件不能相互包含,只能一层包含一层。
2013-08-19 08:30
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
得分:0 
虽然结贴了,但是还想说一句:
看到这段代码,有无比的亲切感,想想以前做嵌入式的时候经常看到这些代码。

说一点吧:
.c文件和.h文件分开,.h文件里面只声明变量,不要定义变量,这样复杂一定就会出现重复包含,链接的时候会出现重定义的错误

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-19 09:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419258-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.539486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved