|
用C51程序刷DGUS变量显示汉字时(文本变量),偶尔会出现半个字(单字乱码或缺失),下一次刷新恢复正常,这个问题怎么解决?尝试下下面写DGUS变量函数中关闭全局中断,也不能解决问题
//---------------------------------------
//写DGUS变量数据 addr=DGUS变量地址 *buf=写入数据指针 len=写入数据字长度
//---------------------------------------
void write_dgusii_vp(unsigned int addr,unsigned char *buf,unsigned int len)
{
unsigned char i;
i=(unsigned char)(addr&0x01);
addr=addr/2;
ADR_H=0x00;
ADR_M=(unsigned char)(addr>>8);
ADR_L=(unsigned char)(addr);
ADR_INC=0x01;
RAMMODE=0x8F;
while(APP_ACK==0);
if(i && len>0)
{
RAMMODE=0x83;
DATA1=*buf++;
DATA0=*buf++;
APP_EN=1;
len--;
}
RAMMODE=0x8F;
while(len>=2)
{
DATA3=*buf++;
DATA2=*buf++;
DATA1=*buf++;
DATA0=*buf++;
APP_EN=1;
len=len-2;
}
if(len)
{
RAMMODE=0x8C;
DATA3=*buf++;
DATA2=*buf++;
APP_EN=1;
}
RAMMODE=0x00;
}
|
|