坛子里面有人遇到过读读片上FLASH怎么总是进HardFault_Handler的问题不,用的是原子兄的实验34中读写Flash程序 移植到实验26触摸屏程序就是会出现这个问题
[mw_shl_code=c,true]u8 TP_Get_Adjdata(void)
{
s32 tempfac;
u8 value[16];
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)value,16);
if(value[14] == 0X0A)//触摸屏已经校准过了
{
tempfac = value[1];
tempfac = (tempfac<<8) | value[0];
tempfac = (tempfac<<8) | value[3];
tempfac = (tempfac<<8) | value[2];
tp_dev.xfac=(float)tempfac/100000000;//得到x校准参数
tempfac = value[5];
tempfac = (tempfac<<8) | value[4];
tempfac = (tempfac<<8) | value[7];
tempfac = (tempfac<<8) | value[6];
tp_dev.yfac=(float)tempfac/100000000;//得到y校准参数
//得到x偏移量
tp_dev.xoff= (((u16)value[9])<<8) | value[8];
//得到y偏移量
tp_dev.yoff = (((u16)value[11])<<8) | value[10];
tp_dev.touchtype = value[12];//读取触屏类型标记
if(tp_dev.touchtype)//X,Y方向与屏幕相反
{
CMD_RDX=0X90;
CMD_RDY=0XD0;
}
else //X,Y方向与屏幕相同
{
CMD_RDX=0XD0;
CMD_RDY=0X90;
}
return 1;
}
return 0;
}[/mw_shl_code]
这段程序运行之后value里面的数据都是对的,但是到这个子程序结束后就进HardFault_Handler里面,搞了3天了还没弄明白啊
|