OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2107|回复: 8

写代码时遇到case语句错误

[复制链接]

9

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2018-12-1
在线时间
18 小时
发表于 2019-5-27 17:33:02 | 显示全部楼层 |阅读模式
1金钱
总是提示:
main.c(81): error:  #29: expected an expression
       case KEY_BACKWARD:
main.c(94): error:  #29: expected an expression
                 case KEY_LEFT:
main.c(109): error:  #29: expected an expression
                 case KEY_RIGHT:
main.c(124): error:  #29: expected an expression
                case KEY_STOP:
main.c(144): warning:  #1-D: last line of file ends without a newline
        }
main.c: 2 warnings, 4 errors

这一大段代码如下:
while(NRF24L01_Check())//????24L01
{

  delay_ms(1000);
  LED0=!LED0; //D2??

}



TX_Mode();//·¢ËÍģʽ

for(t=0;t<6;t++)
{
  tmp_buf[t]='0';
}

while(1)
{
   key=KEY_Scan(0);
   switch(key)
   {
   case KEY_FORWARD:
   {
   for(t=0;t<6;t++)
  {
  tmp_buf[t]='1';
  }
  NRF24L01_TxPacket(tmp_buf);
  LED1=!LED1; //D3??
}

  break;
     case KEY_BACKWARD:
    {
    for(t=0;t<6;t++)
  {
  tmp_buf[t]='2';
  }
  NRF24L01_TxPacket(tmp_buf);
  LED1=!LED1; //D3??
}
  break;
   case KEY_LEFT:
   {
   for(t=0;t<6;t++)
  {
  tmp_buf[t]='3';
  }
  NRF24L01_TxPacket(tmp_buf);
  LED1=!LED1; //D3??
}
  
  break;
   case KEY_RIGHT:
   for(t=0;t<6;t++)
  {
  tmp_buf[t]='4';
  }
  NRF24L01_TxPacket(tmp_buf);
  LED1=!LED1; //D3??
  //LCD_ShowString(100,210,239,32,16,"turn right");
  break;

  case KEY_STOP:
  tmp_buf[0] = '1';
  tmp_buf[1] = '1';
  tmp_buf[2] = '1';
  tmp_buf[3] = '0';
  tmp_buf[4] = '1';
  tmp_buf[5] = '1';
  LED1=!LED1; //D3??
  NRF24L01_TxPacket(tmp_buf);


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2019-5-5
在线时间
13 小时
发表于 2019-5-27 21:50:56 | 显示全部楼层
你上网搜一下case语句的应用要求
回复

使用道具 举报

8

主题

293

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1001
金钱
1001
注册时间
2018-8-16
在线时间
327 小时
发表于 2019-5-27 22:18:35 | 显示全部楼层
key是什么变量类型?t在哪里定义的?
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-5-27 23:35:07 | 显示全部楼层
KEY_BACKWARD, KEY_LEFT, KEY_RIGHT, KEY_STOP
都定义了吗?
回复

使用道具 举报

0

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
887
金钱
887
注册时间
2018-4-20
在线时间
491 小时
发表于 2019-5-28 08:03:58 | 显示全部楼层
break放在case里边
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2019-5-28 08:16:21 | 显示全部楼层
建议把KEY_BACKWARD, KEY_LEFT, KEY_RIGHT, KEY_STOP这些宏定义贴上来,疑似这边出现了问题。

另外论坛发帖有专门的代码编辑模块,请不要直接粘贴,混乱的格式下代码真的是不想仔细看。
十六进制带我飞。
回复

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2014-4-26
在线时间
40 小时
发表于 2019-5-28 09:10:02 | 显示全部楼层
发的这一段,大括号对等吗。。
有的case有大括号,有的没有。break也放里面去。。
KEY_xxx宏定义应该是没问题,因为KEY_FORWARD没有报错,所以是格式问题。
回复

使用道具 举报

4

主题

46

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2016-2-3
在线时间
51 小时
发表于 2019-5-28 09:37:17 | 显示全部楼层
C90和C99的差别,改配置里面 Misc Controls或者修改最后一个case+break+default
回复

使用道具 举报

9

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2018-12-1
在线时间
18 小时
 楼主| 发表于 2019-5-30 02:35:09 | 显示全部楼层
感谢各位,我已经解决了,楼上老哥说得对我会改过来的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 11:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表