针式打印机 文字错误

来源:百度知道 编辑:UC知道 时间:2024/07/12 00:36:16
用单片机控制针式打印机进行打印(反向),一般情况下打印正常,但是每10次左右会出现一行文字(中文)左右中断
,即一个汉字打出一半之后,出现一个白线,然后继续打另外一半,并且和下一个文字的前半重叠。请问是软件问题还是硬件问题,如何解决?
int RS232_SendChar(unsigned char c,unsigned int PortNum) /* 发送的字符 */
{
unsigned long t;

t = RTC_ReadBin(); /* 读出当前时间 */
if(PortNum == 1)
{
while((*(unsigned long *)SYSFLG1)&SYSFLG1_UTXFF1){ /* 等待发送FIFO中的空间 */
if(RTC_ReadBin()==(t+2)) return 0;
}
*(unsigned long *)UARTDR1 = c; /* 发送字符 */
}
else if(PortNum == 2)
{
while((*(unsigned long *)SYSFLG2)&SYSFLG2_UTXFF2){ /* 等待发送FIFO中的空间 */
if(RTC_ReadBin()==(t+2)) return 0;
}
*(unsigned long *)UARTDR2 = c; /* 发送字符 */
}

return 1;
}

这个问题很简单你现在换个打印线,然后从新安装一下驱动,货把打印机换到别的电脑上装个驱动试一下,要是不行那就是排线的问题,换个排线就好了!

你发的是图形指令ESC *还是字符代码?一行出现几次还是10多行一次?你描述的不是很清楚,但感觉象是软件问题。如果发送的是字符指令,换台打印机试试。能把你发送到打印机的代码贴出来看看吗?

你写的是发送程序,那你发送的是什么内容呢?是普通的字符吗?如果只发送字符没有打印指令应该是打印机问题,换台打印机看看。但如果你发送的有定位指令和图形指令,可能是指令的问题。 可以尝试下将c字符改为0xB0,不断发送。打印出来的字是不是还是有白线和重叠现象,如果有应该是打印机出问题了。16进制(B0,B0)和起来应该是汉字“鞍”。

联系打印机售后啊!!!