void mag(int display_mag)
{
unsigned char datatemp[12][6]; //数据读取
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,72);
for(i_mag=0;i_mag<12;i_mag++)
{
for(j_mag=0;j_mag<6;j_mag++)
{
MAG_1[i_mag][j_mag]=datatemp[i_mag][j_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==23|key_mag==24) MAG_1[num_mag1-1][num_mag2-1]=0;//删除
else if(key_mag==13) MAG_1[num_mag1-1][num_mag2-1]=1;//左
else if(key_mag==14) MAG_1[num_mag1-1][num_mag2-1]=2;//中
else if(key_mag==15) MAG_1[num_mag1-1][num_mag2-1]=3;//右
x10=x1;
y10=y1;
x20=x2;
y20=y2;
/////////////////////////////////////////////////////////////////////////////////////////////////////
if(key_mag==25) //数据存储
{
LCD_Fill(80,80,240,160,WHITE);//清除半屏
Show_Str(96,120,200,14,"开始写入数据....",14,1);
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)MAG_1,72);
delay_ms(10000);
Show_Str(96,120,200,14," 数据写入完成 ",14,1);//提示传送完成
delay_ms(10000);
mag1();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
end:{}
}
}
加上读取FLASH那句后程序跳不出去,删掉就没有任何问题,这是怎么回事啊
|