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