釆用IAP15W4K58S4单片机截取并口打印机程序,偶尔会走不出以下程序.真是奇怪了.
Printer_STB是数据使能脚 ,取得数据送入da_ta[]数据组,i是全局变量,0X08是整个数据的最后一位.检测到此数据跳出此函数.
void printer_data(void)
{
while(1) //接收数据
{
while(Printer_STB); //等待
while(Printer_STB); //等待
//while(!Printer_STB); //判断读数据信号
da_ta[i] = P2; //printer数据进入内存
if(da_ta[i]==0x08)break; //检查到0D(回车)跳出些循环
i++;
while(!Printer_STB); //等待Printer_STB低谷过去,防止重复发一个数据
}
i=0;
_nop_();
_nop_();
} |