Stan199651 2023-10-24 19:00 采纳率: 0%
浏览 2647

Keil报错C141: syntax error near '=', expected ';'

https://blog.csdn.net/m0_46202433/article/details/105838713
抄这个原码

#include<reg51.h>
unsigned char ID;
void delay10ms(void)
{
  unsigned char i,j;
  for(i=20;i>0;i--)
  for(j=248;j>0;j--);
}

void delay02s(void)
{
  unsigned char i;
  for(i=20;i>0;i--)
    {
      delay10ms();
    }
}

void main (void)
{
  while(1)
  {
    if(P1^0==0)
    {
      delay10ms();
        if(P1^0==0)
        {
          ID++;
            if(ID==4)
            {
              ID=0;
            }
          while(P1^0==0);
        }
    }
    switch(ID)
    {
      case 0:
        P2^0 =~P2^0;
        delay02s();
        break;
      case 1:
        P2^1 =~P2^1;
        delay02s();
        break;
      case 2:
        P2^2 =~P2^2;
        delay02s();
        break;
      case 3:
        P2^0 =~P2^0;
        delay02s();
        break;
    }
  }
}

然后Keil报错
main.c(39): error C141: syntax error near '=', expected ';'
main.c(43): error C141: syntax error near '=', expected ';'
main.c(47): error C141: syntax error near '=', expected ';'
main.c(51): error C141: syntax error near '=', expected ';'
报错搞了半天没弄明白

  • 写回答

2条回答 默认 最新

  • ORIGAMI7023_ 2024-02-03 17:11
    关注

    P2^0这种格式好像不能赋值,只能读取。
    在文件开头,include下方定义下

    sbit P2_0=P2^0;
    

    再在函数里对P2_0赋值

    评论

报告相同问题?

问题事件

  • 创建了问题 10月24日