OpenEdv-开源电子网

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

菜单制作过程中出现的问题

[复制链接]

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
发表于 2013-10-17 00:49:05 | 显示全部楼层 |阅读模式

#include "mag.h"    //行驶地图设置
#include "prog.h"          //主界面
#include "input.h"          //输入模块
#include "output.h"    //输出模块
#include "delay.h"    //延时模块
#include "sys.h"    //系统模块
#include "lcd.h"    //显示模块
#include "timer.h"    //PWM模块
#include "adc.h"    //模拟输入模块
#include "pid.h"    //PID模块
#include "rfid.h"    //站标模块
#include "usart.h"      //串口模块
#include "string.h"
#include "remote.h"    //红外接收模块
#include "key.h"             //矩阵键盘模块
#include "sdio_sdcard.h"     //SD卡模块
#include "stm32f10x_adc.h"

////////////////////////////////////////////////////////////////////////////////
 u8 key_mag;                   //矩阵键盘
 int x1,y1,x2,y2,x10,y10,x20,y20;
 int num_mag1=1;
 int num_mag2=1;
 int i_mag,j_mag,
///////////////////////////////////////////////////////////////////////////////
  unsigned char MAG_1[12][6];
///////////////////////////////////////////////////////////////////////////////
   void mag1(void)
   {
        LCD_Clear(WHITE);
        POINT_COLOR=BLACK;
  LCD_DrawRectangle(2,2,318,238);
  LCD_DrawLine(78,22,318,22);        //横线
  LCD_DrawLine(2,46,318,46);        //横线
  LCD_DrawLine(47,62,318,62);        //横线
  LCD_DrawLine(2,78,318,78);        //横线
  LCD_DrawLine(47,94,318,94);        //横线
  LCD_DrawLine(2,110,318,110);    //横线
  LCD_DrawLine(47,126,318,126);    //横线
  LCD_DrawLine(2,142,318,142);    //横线
  LCD_DrawLine(47,158,318,158);    //横线
  LCD_DrawLine(2,174,318,174);    //横线
  LCD_DrawLine(47,190,318,190);    //横线
  LCD_DrawLine(2,206,318,206);    //横线
  LCD_DrawLine(47,222,318,222);    //横线
  LCD_DrawLine(47,2,47,238);        //竖线
  LCD_DrawLine(78,2,78,238);        //竖线
  LCD_DrawLine(118,22,118,238);    //竖线
  LCD_DrawLine(158,22,158,238);    //竖线
  LCD_DrawLine(198,22,198,238);    //竖线
  LCD_DrawLine(238,22,238,238);    //竖线
  LCD_DrawLine(278,22,278,238);    //竖线
  OINT_COLOR=BLUE;
  LCD_ShowString(20,54,200,16,16,"1",0);//1
  LCD_ShowString(20,86,200,16,16,"2",0);//2
  LCD_ShowString(20,118,200,16,16,"3",0);//3
  LCD_ShowString(20,150,200,16,16,"4",0);//4
  LCD_ShowString(20,182,200,16,16,"5",0);//5
  LCD_ShowString(20,214,200,16,16,"6",0);//6
  Show_Str(4,6,200,14,"目的地",14,1);
  Show_Str(11,26,200,14,"编号",14,1);
  Show_Str(50,6,200,14,"行进",14,1);
  Show_Str(50,26,200,14,"方向",14,1);
  Show_Str(50,47,200,14,"前进",14,1);
  Show_Str(50,63,200,14,"后退",14,1);
  Show_Str(50,79,200,14,"前进",14,1);
  Show_Str(50,95,200,14,"后退",14,1);
  Show_Str(50,111,200,14,"前进",14,1);
  Show_Str(50,127,200,14,"后退",14,1);
  Show_Str(50,143,200,14,"前进",14,1);
  Show_Str(50,159,200,14,"后退",14,1);
  Show_Str(50,175,200,14,"前进",14,1);
  Show_Str(50,191,200,14,"后退",14,1);
  Show_Str(50,207,200,14,"前进",14,1);
  Show_Str(50,223,200,14,"后退",14,1);
  Show_Str(145,4,200,14,"分岔点编号",14,1);
  LCD_ShowString(95,27,200,16,16,"1",0);//1
  LCD_ShowString(135,27,200,16,16,"2",0);//2
  LCD_ShowString(175,27,200,16,16,"3",0);//3
  LCD_ShowString(215,27,200,16,16,"4",0);//4
  LCD_ShowString(255,27,200,16,16,"5",0);//5
  LCD_ShowString(295,27,200,16,16,"6",0);//6
   }

 


   void mag(int display_mag)
   {   
 mag1();
 while(display_mag==5)
 { 

  key_mag=keyboard_Scan(); //矩阵键盘键值
  if(key_mag==4|key_mag==6|key_mag==10|key_mag==11|key_mag==12)
  {
   display_mag=key_mag;
   goto end;
  }
//////////////////////////////////////////////////////////////////////////////////////////////////////
  if(key_mag==32)  //
  {
   delay_ms(150);
   num_mag1++;
   if(num_mag1>12)
    {num_mag1=1;}
  }
  if(key_mag==26) //
  {delay_ms(150);
   num_mag1--;
   if(num_mag1<1)
   {num_mag1=12;}
   }
  if(key_mag==33) //
  {delay_ms(150);
   num_mag2++;
   if(num_mag2>6)
    {num_mag2=1;}
  }
  if(key_mag==31)//
  {delay_ms(150);
   num_mag2--;
   if(num_mag2<1)
   {num_mag2=6;}
   }
//////////////////////////////////////////////////////////////////////////////////////////////////////
  for(i_mag=0;i_mag<12;i_mag++)
  {
   for(j_mag=0;j_mag<6;j_mag++)
   {
    if(MAG_1[i_mag][j_mag]==1) Show_Str(95+40*j_mag,47+16*i_mag,200,14,"左",14,1);
    if(MAG_1[i_mag][j_mag]==2) Show_Str(95+40*j_mag,47+16*i_mag,200,14,"中",14,1);
    if(MAG_1[i_mag][j_mag]==3) Show_Str(95+40*j_mag,47+16*i_mag,200,14,"右",14,1);
    }
   }
/////////////////////////////////////////////////////////////////////////////////////////////////////
  if(39+40*num_mag2<79)goto end;
  if(31+16*num_mag1<47)goto end;
  x1=(39+40*num_mag2);
  y1=(31+16*num_mag1);
  x2=(77+40*num_mag2);
  y2=(45+16*num_mag1);

  if(x1!=x10|x2!=x20|y1!=y10|y2!=y20) LCD_Fill(x10,y10,x20,y20,WHITE);
  LCD_Fill(x1,y1,x2,y2,BLUE);
  if(key_mag==13)       MAG_1[num_mag2][num_mag1]=1;
  else if(key_mag==14)  MAG_1[num_mag2][num_mag1]=2;
  else if(key_mag==15)  MAG_1[num_mag2][num_mag1]=3;
  x10=x1;
  y10=y1;
  x20=x2;
  y20=y2;
 


  end:{}
 }
   }



在程序中加入二维数组后出现报警
..\HARDWARE\MAG\mag.c(131): error:  #20: identifier "MAG_1" is undefined

..\HARDWARE\MAG\mag.c(146): error:  #20: identifier "MAG_1" is undefined

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

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-17 00:51:08 | 显示全部楼层

 去掉二维数组后出现这个报警

..\HARDWARE\MAG\mag.c(83): warning:  #940-D: missing return statement at end of non-void function "<error>"
..\HARDWARE\MAG\mag.c(90): warning:  #223-D: function "mag1" declared implicitly

但是在加入二维数组前是可以运行的啊  加入后再删除原来的也运行不过去了

回复 支持 反对

使用道具 举报

27

主题

110

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329
金钱
329
注册时间
2013-5-12
在线时间
26 小时
 楼主| 发表于 2013-10-17 01:12:21 | 显示全部楼层
已解决
回复 支持 反对

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2019-7-7
在线时间
28 小时
发表于 2020-10-30 16:48:55 | 显示全部楼层
求解答
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 11:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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