发表于:2007-05-06 16:16:00
楼主
在7188e3上,用Xserver框架实现:要读取串口1的数据,然后通过已经建立的socket发送读到的数据.下面这段代码是在void UserLoopFun(void)函数里面定义的,我用循环的方式查询COM1的输入缓冲里有没有数据,第一个if 的内嵌语句一直没有执行(因为返回0),但程序几秒后就终止了,按道理它应该一直在循环的呀,怎么会终止呢?是不是IsCom1函数不能相隔很短的时间执行,或者还是MiniOS什么超时了?请大虾指教!
while (1) {
if (IsCom1()) { //判断输入缓存是否有数据
printCom1("in while!") ;
ReadCom1n (typeData, 1);//从COM1读取1个数据
iRet = SendSocketBinaryCmd(Outskt,typeData, strlen(typeData));
if(iRet < 0) {
printCom1("Socket error!");
}
printCom1 (typeData);// for debug
ClearCom1();
break;
}
}