我在写液晶时把校正数据直接保存到备份寄存器中,为什么单独的读写操作都可以,但保存校正数据读出来就不对了,并且只要运行到读取函数,液晶就不能触屏了,
void TP_Save_Adjdata(void)
{
s32 temp;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,ENABLE);
PWR_BackupAccessCmd(ENABLE);
temp=tp_dev.xfac*100000000;
BKP_WriteBackupRegister(BKP_DR3, temp);
temp=tp_dev.yfac*100000000;
BKP_WriteBackupRegister(BKP_DR4, temp);
BKP_WriteBackupRegister(BKP_DR5, tp_dev.xoff);
BKP_WriteBackupRegister(BKP_DR6, tp_dev.yoff);
BKP_WriteBackupRegister(BKP_DR7, tp_dev.touchtype);
BKP_WriteBackupRegister(BKP_DR2, 2);
}
//????±?????????????
void TP_Get_Adjdata(void)
{
s32 tempfac;
tempfac=BKP_ReadBackupRegister(BKP_DR3);
tp_dev.xfac=(double)tempfac/100000000;
tempfac=BKP_ReadBackupRegister(BKP_DR4);
tp_dev.yfac=(double)tempfac/100000000;
tp_dev.xoff=BKP_ReadBackupRegister(BKP_DR5);
tp_dev.yoff=BKP_ReadBackupRegister(BKP_DR6);
tp_dev.touchtype=BKP_ReadBackupRegister(BKP_DR7);
}
备份寄存器初始化在 touch的初始化里面 |