首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

新手!keil 51异常:error C129 :missing''before 'a'

2013-07-04 
新手求助!!keil 51错误:error C129 :missing'𧯯ore ɺ'我想把LED.c中的变量‘a’定

新手求助!!keil 51错误:error C129 :missing';'before 'a'
我想把LED.c中的变量‘a’定义成外部变量,以便被工程中的其他文件共享,但在调试时,出现了如标题所示的报警信息。
我的LED.c文件和LED.h文件分别如下(源程序全部是在英文状态输入的):

LED.C源程序:

#include <reg52.h>
#include <TimerT0.h>   //定时器中断程序的头文件 
#include <Typedef.h>   //类型定义头文件

sbit led_0=P0^0 ;      
uint a;

/*LED闪烁函数*/
void led_display()
{
if (sys_flag_500ms == 1)   /*500ms时间到。时标sys_flag_500ms 由定时器中断产生*/
{
sys_flag_500ms = 0 ;/*时标清零*/
led_0 = ~led_0 ;    /*LED以0.2Hz的频率闪烁 */
                  a++;               
}
}

LED.h文件:

#ifndef _LED_H_
#define _LED_H_

extern void led_display();
extern uint a;

#endif

说明:
1)除了LED.C文件和LED.h文件外,还有另外几个文件,共同组成一个完整的LED闪烁程序,在此篇幅所限没贴出。
2)在没有加入uint a;和ertern uint a;之前,整个程序是正常工作的
3)但是在加入uint a;和ertern uint a;之后,程序就会出现:error C129 :missing';'before 'a' 的报警信息,同时我也详细检查过,绝不是在‘a’的前面缺少了‘;’。

非常感谢有高人指点,不胜感激!
[解决办法]
uint 没有定义。在LED.h中
#include <Typedef.h> //类型定义头文件

[解决办法]
试一下在LED.h头文件中添加uint的宏定义。
或者如2楼所说添加那个头文件。
[解决办法]
sbit led_0=P0^0 ;   

感觉你的这个分号像是全角字符

得用英文半角
[解决办法]
If you don't want to change LED.h, you can try to change the way you include header files in main.c, like the following:

#include <reg52.h>
#include <timerT0.h>
#include <typedef.h>
#include <led.h>


------解决方案--------------------


头文件的顺序。。。。。如果它们没有依赖性就无所谓,否则被引用的要放在前面。

热点排行