哪位大侠帮我看看以下代码啊!

2019-07-16 04:46发布

                                   /********************************************************************
* 文件名  : 串口试验.c

***********************************************************************/
#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char         
#define uint unsigned int
uchar LED_Buffer[8];      //从串口接收的数据
unsigned int m;
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(uint i)//1ms延时
{
        uchar x,j;
        for(j=0;j<i;j++)
        for(x=0;x<=148;x++);       
}

/********************************************************************
* 名称 : Com_Int()
* 功能 : 串口中断子函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Int(void) interrupt 4
{
        EA = 0;
        if(RI == 1)   //当硬件接收到一个数据时,RI会置位
        {        m++;
                RI = 0;  
        }
        EA = 1;
}

/********************************************************************
* 名称 : Com_Init()
* 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
     TMOD = 0x20;
     PCON = 0x00;
     SCON = 0x50;                       
     TH1 = 0xFd;    //设置波特率 9600
     TL1 = 0xFd;
     TR1 = 1;                //启动定时器1
         ES = 1;                //开串口中断
         EA = 1;                //开总中断               
}

/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/          
void main( )
{
        uchar i = 0;
        m=0;                                                                         
    uchar code a[] = "open";       
        uchar code b[] = "close";       
        uchar *p;
        Delay_1ms(100);
        Com_Init();
        P1= 0x00;
        while(1)
        {
        if(m%2==0)
                { P1=0x00;
          p =b;
                 while(1)
                   {
                           SBUF = *p;
                           while(!ti)                   //如果发送完毕,硬件会置位TI
                                  {
                                       _nop_();       
                                   }
                                     p++;
                                if(*p == '') break;                //在每个字符串的最后,会有一个''
                               TI = 0;                                //TI清零
                           }
                  }
        else
            {P1=0x01;                 
         p=a;
                 while(1)
                   {
               
                           SBUF =*p;
                           while(!TI)                   //如果发送完毕,硬件会置位TI
                                  {
                                             _nop_();       
                             }
                             p++;
                                if(*p == '') break;                //在每个字符串的最后,会有一个''
                               TI = 0;                                //TI清零
                           }
                  }

        }
}







错误原因是:
compiling 11.c
11.C(69): error C141: syntax error near 'unsigned'
11.C(70): error C141: syntax error near 'unsigned'
11.C(71): error C141: syntax error near 'unsigned'
11.C(71): error C202: 'p': undefined identifier
11.C(79): error C202: 'p': undefined identifier
11.C(82): error C202: 'p': undefined identifier
11.C(87): error C202: 'p': undefined identifier
11.C(88): error C202: 'p': undefined identifier
11.C(94): error C202: 'p': undefined identifier
11.C(98): error C202: 'p': undefined identifier
11.C(103): error C202: 'p': undefined identifier
11.C(104): error C202: 'p': undefined identifier
11.c - 12 Error(s), 0 Warning(s).
                       






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
lovezjf234
1楼-- · 2019-07-16 06:12
 精彩回答 2  元偷偷看……
lstcspring
2楼-- · 2019-07-16 06:49
    uchar code a[] = "open";        
        uchar code b[] = "close";  不能这样赋值吧
eric.zhan
3楼-- · 2019-07-16 09:13
uchar i = 0;
         m=0;  
改为:
uchar i = 0;
unsigned int m=0;
或者在全局变量处 直接赋值。
这样以后的关于"p"的问题也解决了 !


  
3htech
4楼-- · 2019-07-16 15:01
变量必须先定义后使用。这意味着,所有的变量必须在使用前定义而中间不能插入赋值语句。因为赋值语句也是使用。

错误在m = 0; 这是一条使用,不能出现在定义之前。
15016978760
5楼-- · 2019-07-16 19:36
我準備幫你,明天給你
15016978760
6楼-- · 2019-07-16 23:57
 精彩回答 2  元偷偷看……

一周热门 更多>