打印机能收到串口发过去的数据,用打印机的Hex Dump看打印机收到的16进制数确认打印机是收到正确的数据
但咋就收不到打印机发回来的数据呢
用PC给打印机发指令,能正常收到打印机返回的数据
PrintASCII68(0,3,"2.Printer");
for(i=0;i<17;i++){StringD[i]=0;}
REN=1;
SBUF=0x1d;
while(TI==0);
TI=0;
SBUF=0x49;
while(TI==0);
TI=0;
SBUF=0x42;
while(TI==0);
TI=0;
for(i=0;i<17;i++)
{
T_counter1=0;
while(RI==0)
{
if(T_counter1>10)
{
if((i==0)|(i==1)){/*PrintASCII68(0,4,"No printer");delayms(2000);*/goto LP0;}
else{break;}
}
}
RI=0;
StringD[i]=SBUF;
}
PrintASCII68(96,3,"Ok");
Printer=1;
PrintASCII68(0,4,StringD);
for(i=0;i<17;i++){StringD[i]=0;}
delayms(200);
SBUF=0x1d;
while(TI==0);
TI=0;
SBUF=0x49;
while(TI==0);
TI=0;
SBUF=0x43;
while(TI==0);
TI=0;
for(i=0;i<17;i++)
{
T_counter1=0;
while(RI==0)
{
if(T_counter1>10)
{
if((i==0)|(i==1)){/*PrintASCII68(0,4,"No printer");delayms(2000);*/goto LP0;}
else{break;}
}
}
RI=0;
StringD[i]=SBUF;
}
PrintASCII68(0,5,StringD);
LP0:
for(i=0;i<9;i++){StringD[i]=0;}
if(Printer==0){PrintASCII68(96,3,"No");}
delayms(200);
程序上也看不出多大的问题,线路上测了下都是通的,T_counter1是定时器计数
------解决方案--------------------
接受要使用中断。
------解决方案--------------------
使用的什么打印机呀?有没有返回数据的管脚没有控制到?(方向、读/写)?