[51单片机] 求救各路大神,帮小弟看看哪错了

[复制链接]
2321|15
 楼主| lynm 发表于 2013-10-27 10:18 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar uncharunsigned char
#define uint unsigned int
unsigned char flag,a,i;
uchar code table[]="I get";
void init()
{
   TMOD=0x20;//设定T1定时器工作方式2
   TH1=0xfd;//T1定时器初值
   TL1=0xfd;//T1定时器初值
   TR1=1;//启动T1定时器
   REN=1;//允许串口接收
   SM0=0;//设定串口工作方式1
   SM1=1;//设定串口工作方式1
   EA=1;//开总中断
   ES=1;//开串口中断
   
}
void main()
{
   init();
   while(1)
   {
      if(flag==1)
      {
         ES=0;
         for(i=0;i<6;i++)
         {
            SBUF=table[i];
            while(!TI);
            TI=0;
            
         }
         SBUF=a;
         while(!TI);
         TI=0;
         ES=1;
         flag=0;
      }
   }

}

//串口中断服务程序
void ser() interrupt 4
{
  RI=0;
  a=SBUF;
  flag=1;
  
}
 楼主| lynm 发表于 2013-10-27 10:31 | 显示全部楼层
小弟编译后报错是:TEST02CHUANKOU.C(5): error C129: missing ';' before 'char'
ballack_linux 发表于 2013-10-27 10:37 | 显示全部楼层
#define uchar uncharunsigned char
改成
#define uchar unsigned char
gx_huang 发表于 2013-10-27 10:42 | 显示全部楼层
就是,都提示了,就这么几个字母,都不仔细看看。
 楼主| lynm 发表于 2013-10-27 10:48 | 显示全部楼层
ballack_linux 发表于 2013-10-27 10:37
#define uchar uncharunsigned char
改成
#define uchar unsigned char

小弟之前也是这样写的,后来百度了一下,才改成这样,依然不行
gx_huang 发表于 2013-10-27 14:55 | 显示全部楼层
那不可能,你重新英文模式输入一次。
黄小俊 发表于 2013-10-27 16:40 | 显示全部楼层
第二行写成这个样子错了吧。。
McuPlayer 发表于 2013-10-27 16:46 | 显示全部楼层
这种情况下尽量少用宏,而用typedef来替代,后者编译器可提供类型检查

#define uchar unsigned char
typedef unsigned char uchar;
ballack_linux 发表于 2013-10-27 22:43 | 显示全部楼层
lynm 发表于 2013-10-27 10:48
小弟之前也是这样写的,后来百度了一下,才改成这样,依然不行

   看,改完后编译完全没有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| lynm 发表于 2013-10-28 15:26 | 显示全部楼层
ballack_linux 发表于 2013-10-27 22:43
看,改完后编译完全没有问题

大神再帮我看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lzq-first 发表于 2013-10-28 16:20 | 显示全部楼层
第二,第三行最后的“;”去掉
luofeng2g 发表于 2013-10-28 16:22 | 显示全部楼层
本帖最后由 luofeng2g 于 2013-10-28 23:01 编辑
lynm 发表于 2013-10-28 15:26
大神再帮我看看

define后面的分号,哪来的?。。:L
JasonWangSE 发表于 2013-10-28 16:28 | 显示全部楼层
 楼主| lynm 发表于 2013-10-28 17:30 | 显示全部楼层
因为我是写软件的,都习惯了,谢了
电力猫 发表于 2013-10-28 17:47 | 显示全部楼层
....新手什么都不懂
ballack_linux 发表于 2013-10-28 22:51 | 显示全部楼层
lynm 发表于 2013-10-28 15:26
大神再帮我看看

define 是宏定义。。  不是语句,后面不能加分号,第二行和第三行后面的分号去掉即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部